-
Notifications
You must be signed in to change notification settings - Fork 16
136 lines (127 loc) · 4.41 KB
/
platform_tests-command.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: Platform Tests
on:
schedule:
- cron: '59 07 * * *' # UTC 7:59(23:59 PST Winter Time) everyday
workflow_dispatch:
inputs:
repository:
description: 'The repository from which the slash command was dispatched'
required: true
comment-id:
description: 'The comment-id of the slash command'
required: true
pr-sha:
description: 'The pr-sha of which the slash command was dispatched'
required: true
branch_or_pr_number:
description: 'dummy parameter to allow benchmark workflow to run'
required: false
fork_info:
description: 'Get info of forked repository and branch'
required: false
permissions:
contents: read
id-token: write
jobs:
setup:
runs-on: ubuntu-latest
steps:
- name: Create URL to the run output
if: (github.event_name == 'workflow_dispatch')
id: vars
run: echo ::set-output name=run-url::https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
- name: Create comment
if: (github.event_name == 'workflow_dispatch')
uses: peter-evans/create-or-update-comment@v4
with:
token: ${{ secrets.CICD_PAT }}
repository: ${{ github.event.inputs.repository }}
comment-id: ${{ github.event.inputs.comment-id }}
body: |
[Platform Tests Output][1]
[1]: ${{ steps.vars.outputs.run-url }}
install:
needs: setup
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
python: ["3.9", "3.10", "3.11"]
steps:
- name: Checkout repository for PR
if: (github.event_name == 'workflow_dispatch')
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.pr-sha }}
- name: Checkout repository for nightly test
if: (github.event_name == 'schedule')
uses: actions/checkout@v4
- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: assistant_py3
environment-file: .github/workflows_env/unittest_env.yml
auto-update-conda: true
python-version: ${{ matrix.python }}
miniconda-version: "latest"
- name: Setup OMP # This is needed for macos-latest to avoid the error lightgbm macOS issue
if: matrix.os == 'macos-latest'
shell: bash -l {0}
run: |
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb
if brew list | grep -q libomp; then
brew unlink libomp
fi
brew install libomp.rb
rm libomp.rb
- name: test-install
shell: bash -l {0}
run: |
chmod +x ./.github/workflow_scripts/test_install.sh && ./.github/workflow_scripts/test_install.sh
integration_test:
needs: setup
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
python: ["3.9", "3.10", "3.11"]
steps:
- name: Checkout repository for PR
if: (github.event_name == 'workflow_dispatch')
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.pr-sha }}
- name: Checkout repository for nightly test
if: (github.event_name == 'schedule')
uses: actions/checkout@v4
- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: assistant_py3
environment-file: .github/workflows_env/unittest_env.yml
auto-update-conda: true
python-version: ${{ matrix.python }}
miniconda-version: "latest"
- name: Setup OMP for macOS
if: matrix.os == 'macos-latest'
shell: bash -l {0}
run: |
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb
if brew list | grep -q libomp; then
brew unlink libomp
fi
brew install libomp.rb
rm libomp.rb
- name: Integration Test
uses: ./.github/actions/test-assistant
with:
aws-role-arn: ${{ secrets.AWS_CI_ROLE_ARN }}
submodule-to-test: integration