@@ -19,28 +19,40 @@ concurrency:
1919 group : ${{ github.sha }}
2020
2121jobs :
22- windows-meson-build :
23- name : win+Meson build
24- runs-on : windows-latest
22+ dockerized :
23+ name : ${{matrix.vector.jobname}} (${{matrix.vector.image}})
2524 concurrency :
26- group : windows-meson-build-${{ github.ref }}
25+ group : dockerized-${{ matrix.vector.jobname }}-${{ matrix.vector.image }}-${{ github.ref }}
26+ strategy :
27+ fail-fast : false
28+ matrix :
29+ vector :
30+ - jobname : linux-musl-meson
31+ image : alpine:latest
32+ env :
33+ jobname : ${{matrix.vector.jobname}}
34+ CC : ${{matrix.vector.cc}}
35+ CI_JOB_IMAGE : ${{matrix.vector.image}}
36+ runs-on : ubuntu-latest
37+ container : ${{matrix.vector.image}}
2738 steps :
39+ - name : prepare libc6 for actions
40+ if : matrix.vector.jobname == 'linux32'
41+ run : apt -q update && apt -q -y install libc6-amd64 lib64stdc++6
2842 - uses : mxschmitt/action-tmate@v3
2943 with :
3044 detached : true
3145 - uses : actions/checkout@v4
32- - uses : actions/setup-python@v5
33- - name : Set up dependencies
34- shell : pwsh
35- run : pip install meson ninja
36- - name : Setup
37- shell : pwsh
38- run : meson setup build -Dperl=disabled
39- - name : Compile
40- shell : pwsh
41- run : meson compile -C build
42- - name : Upload build artifacts
46+ - run : ci/install-dependencies.sh
47+ - run : useradd builder --create-home
48+ - run : chown -R builder .
49+ - run : sudo --preserve-env --set-home --user=builder ci/run-build-and-tests.sh
50+ - name : print test failures
51+ if : failure() && env.FAILED_TEST_ARTIFACTS != ''
52+ run : sudo --preserve-env --set-home --user=builder ci/print-test-failures.sh
53+ - name : Upload failed tests' directories
54+ if : failure() && env.FAILED_TEST_ARTIFACTS != ''
4355 uses : actions/upload-artifact@v4
4456 with :
45- name : windows-meson-artifacts
46- path : build
57+ name : failed-tests-${{matrix.vector.jobname}}
58+ path : ${{env.FAILED_TEST_ARTIFACTS}}
0 commit comments