55 workflow_dispatch :
66
77jobs :
8- generate-tier1 :
9- runs-on : ubuntu-latest
10- outputs :
11- matrix : ${{ steps.set-matrix.outputs.matrix }}
12- env :
13- TARGET : tier1
14- JOBS : python-svm-build|python-unittest-retagger
15- steps : &generate_matrix
16- - uses : actions/checkout@v4
17- - name : Download sjsonnet
18- run : |
19- curl -L -o sjsonnet https://github.com/databricks/sjsonnet/releases/download/0.5.7/sjsonnet-0.5.7-linux-x86_64
20- chmod +x sjsonnet
21- - name : Extract job matrix
22- id : set-matrix
23- run : |
24- python3 .github/scripts/extract_matrix.py ./sjsonnet ./ci.jsonnet ${TARGET} ${JOBS} > matrix.json
25- cat matrix.json
26- echo "matrix=$(cat matrix.json)" >> $GITHUB_OUTPUT
8+ run-retagger :
9+ uses : ./.github/workflows/ci-matrix-gen.yml
10+ with :
11+ jobs_to_run : python-svm-build-gate-linux|python-unittest-retagger-gate-batch1
2712
28- generate-tier2 :
13+ merge_all_reports :
2914 runs-on : ubuntu-latest
30- outputs :
31- matrix : ${{ steps.set-matrix.outputs.matrix }}
32- env :
33- TARGET : tier2
34- JOBS : ${{ inputs.jobs_to_run }}
35- steps : *generate_matrix
36-
37- generate-tier3 :
38- runs-on : ubuntu-latest
39- outputs :
40- matrix : ${{ steps.set-matrix.outputs.matrix }}
41- env :
42- TARGET : tier3
43- JOBS : ${{ inputs.jobs_to_run }}
44- steps : *generate_matrix
45-
46- tier1 :
47- needs : generate-tier1
48- runs-on : ${{ matrix.os }}
49- env : ${{ matrix.env }}
50- strategy :
51- fail-fast : false
52- matrix :
53- include : ${{ fromJson(needs.generate-tier1.outputs.matrix) }}
54- steps : &buildsteps
55-
56- - name : Actions/Checkout
57- uses : actions/checkout@main
58- with :
59- path : main
60-
61- - name : Setup Unix paths like on buildbot CI
62- if : runner.os != 'Windows'
63- run : |
64- echo "PARENT_DIRECTORY=$(pwd)" >> $GITHUB_ENV
65- - name : Setup Windows paths like on buildbot CI
66- if : runner.os == 'Windows'
67- run : |
68- "PARENT_DIRECTORY=$PWD" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
69-
70- # Set up Python and packages
71- - uses : actions/setup-python@v6
72- if : ${{ matrix.python_version }}
73- with :
74- python-version : ${{ matrix.python_version }}
75- - name : Install python packages on Unix
76- if : ${{ runner.os != 'Windows' && matrix.python_packages }}
77- run : |
78- for pkg in ${{ matrix.python_packages }}; do
79- pip install "$pkg" || true
80- done
81- - name : Install python packages on Windows
82- if : ${{ runner.os == 'Windows' && matrix.python_packages }}
83- run : |
84- $packages = '${{ matrix.python_packages }}' -split ' '
85- foreach ($pkg in $packages) {
86- pip install "$pkg"
87- }
88-
89- - name : Install system packages on Linux
90- if : ${{ runner.os == 'Linux' && matrix.system_packages }}
91- run : |
92- sudo apt-get -qq update
93- for pkg in ${{ matrix.system_packages }}; do
94- sudo apt-get -qq install "$pkg" || true
95- done
96- - name : Install system packages on macOS
97- if : ${{ runner.os == 'macOS' && matrix.system_packages }}
98- run : |
99- echo $PATH
100- brew update
101- for pkg in ${{ matrix.system_packages }}; do
102- brew install "$pkg" || true
103- done
104- - name : Install system packages on Windows
105- if : ${{ runner.os == 'Windows' && matrix.system_packages }}
106- run : |
107- $packages = '${{ matrix.system_packages }}' -split ' '
108- foreach ($pkg in $packages) {
109- try {
110- choco install $pkg -y
111- } catch {
112- Write-Host "Failed to install $pkg, skipping."
113- }
114- }
115-
116- # Setup mx, buildtools and labsjdk
117- - name : Get mx, buildtools, and labsjdk
118- if : ${{ runner.os != 'Windows' && matrix.mx_version }}
119- shell : bash
120- run : |
121- git clone https://github.com/graalvm/mx
122- if [[ "${RUNNER_OS}" == "Windows" ]]; then
123- ./mx/mx.cmd fetch-jdk -A --jdk-id labsjdk-ce-latest
124- else
125- ./mx/mx fetch-jdk -A --jdk-id labsjdk-ce-latest
126- fi
127- git -C mx checkout ${{ matrix.mx_version }}
128-
129- - name : Setup mx and JAVA_HOME on Unix
130- if : ${{ runner.os != 'Windows' && matrix.mx_version }}
131- run : |
132- echo "$(pwd)/mx/" >> "$GITHUB_PATH"
133- echo "$(pwd)/.github/scripts/" >> "$GITHUB_PATH"
134- echo "JAVA_HOME=$HOME/.mx/jdks/labsjdk-ce-latest" >> "$GITHUB_ENV"
135- echo "JVMCI_VERSION_CHECK=ignore" >> "$GITHUB_ENV"
136- - name : Setup JAVA_HOME on MacOS
137- if : ${{ runner.os == 'macOS' && matrix.mx_version }}
138- run : |
139- echo "JAVA_HOME=$HOME/.mx/jdks/labsjdk-ce-latest/Contents/Home" >> "$GITHUB_ENV"
140- - name : Setup mx and JAVA_HOME on Windows
141- if : ${{ runner.os == 'Windows' && matrix.mx_version }}
142- run : |
143- "$PWD/mx" | Out-File -FilePath "$env:GITHUB_PATH" -Append
144- "$PWD/.github/scripts" | Out-File -FilePath "$env:GITHUB_PATH" -Append
145- "JAVA_HOME=$HOME/.mx/jdks/labsjdk-ce-latest" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
146- "JVMCI_VERSION_CHECK=ignore" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
147-
148- - name : Download artifacts
15+ needs : run-retagger
16+ if : ${{ success() }}
17+ steps :
18+ - name : Download reports
14919 uses : actions/download-artifact@v5
150- if : ${{ matrix.require_artifact }}
15120 with :
152- pattern : ${{ matrix.require_artifact[0] }}
21+ pattern : python-unittest-retagger*
15322 merge-multiple : true
15423 continue-on-error : true
155-
156- - name : Export artifact paths Linux
157- if : ${{ matrix.require_artifact }}
158- run : |
159- echo "ARTIFACT_PATHS=${{ matrix.require_artifact[1] }}/${{ matrix.require_artifact[0] }}.tar" >> "$GITHUB_ENV"
160- echo "ARTIFACT_PATH_PREFIX=${{ matrix.require_artifact[1] }}" >> "$GITHUB_ENV"
161- - name : Export artifact paths Windows
162- if : ${{ matrix.require_artifact && runner.os == 'Windows'}}
163- run : |
164- "ARTIFACT_PATHS=${{ matrix.require_artifact[1] }}/${{ matrix.require_artifact[0] }}.tar" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
165- "ARTIFACT_PATH_PREFIX=${{ matrix.require_artifact[1] }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
166-
167- - name : Install MSBuild
168- if : ${{ runner.os == 'Windows' }}
169- uses : microsoft/setup-msbuild@v2
170-
171- - name : Process matrix downloads
172- if : ${{ matrix.downloads_steps }}
173- run : |
174- ${{ matrix.downloads_steps }}
175-
176- - name : Setup
24+ - name : Merge retagger reports
17725 working-directory : main
178- if : ${{ matrix.setup_steps }}
17926 run : |
180- ${{ matrix.setup_steps }}
27+ mkdir -p ../retagger-reports
28+ sh -c mv retagger-report*.json ../retagger-reports
29+ cd ../retagger-reports
30+ python3 ../main/.github/scripts/merge_retagger_results.py
31+ cd ../main
32+ python3 ./graalpython/com.oracle.graal.python.test/src/runner.py merge-tags-from-report ../retagger-reports/reports-merged.json
33+ sh -c git diff >> reports_diff
18134
182- - name : Check disk space
183- run : df -h
184-
185- - name : Run on Unix
186- working-directory : main
187- if : ${{ matrix.run_steps && runner.os != 'Windows' }}
188- run : |
189- env
190- ${{ matrix.run_steps }}
191- - name : Run on Windows
192- if : ${{ matrix.run_steps && runner.os == 'Windows' }}
193- shell : cmd
194- run : |
195- call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
196- ${{ matrix.run_steps }}
197-
198- - name : Tar artifacts
199- if : ${{ matrix.provide_artifact }}
200- shell : bash
201- working-directory : main
202- run : |
203- ls && pwd
204- tar cf ${{ matrix.provide_artifact[0] }}.tar ${{ matrix.provide_artifact[1] }}
205- - name : Upload artifacts
206- if : ${{ matrix.provide_artifact }}
35+ - name : Export reports diff file
20736 uses : actions/upload-artifact@v5
20837 with :
209- name : ${{ matrix.provide_artifact[0] }}
210- path : main/${{ matrix.provide_artifact[0] }}.tar
211- retention-days : 1
212-
213- - name : Upload logs
214- if : ${{ matrix.logs }}
215- uses : actions/upload-artifact@v5
216- with :
217- name : ${{ format('{0}_logs', matrix.name) }}
218- path : |
219- ${{ matrix.logs }}
220- retention-days : 15
221-
222- tier2 :
223- if : ${{ success() || inputs.jobs_to_run }}
224- needs : [generate-tier2, tier1]
225- runs-on : ${{ matrix.os }}
226- env : ${{ matrix.env }}
227- strategy :
228- fail-fast : false
229- matrix :
230- include : ${{ fromJson(needs.generate-tier2.outputs.matrix) }}
231- steps : *buildsteps
232-
233- tier3 :
234- if : ${{ success() || inputs.jobs_to_run }}
235- needs : [generate-tier3, tier2]
236- runs-on : ${{ matrix.os }}
237- env : ${{ matrix.env }}
238- strategy :
239- fail-fast : false
240- matrix :
241- include : ${{ fromJson(needs.generate-tier3.outputs.matrix) }}
242- steps : *buildsteps
38+ name : retagger.diff
39+ path : main/diff_reports
40+ retention-days : 1
0 commit comments