Skip to content

Commit e3d60ba

Browse files
committed
Use ci-matrix-gen to call retagger and run retagger merge script
1 parent 0ae99e5 commit e3d60ba

File tree

2 files changed

+27
-224
lines changed

2 files changed

+27
-224
lines changed

.github/workflows/ci-matrix-gen.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ on:
77
type: string
88
description: Job selection (Python regex)
99
required: false
10+
workflow_call:
11+
inputs:
12+
jobs_to_run:
13+
required: true
14+
type: string
1015
pull_request:
1116
schedule:
1217
- cron: '0 0 * * 1'

.github/workflows/ci-unittest-retagger.yml

Lines changed: 22 additions & 224 deletions
Original file line numberDiff line numberDiff line change
@@ -5,238 +5,36 @@ on:
55
workflow_dispatch:
66

77
jobs:
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

Comments
 (0)