From c0a5801f7b034f3473c10f627d54671e1588963b Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Fri, 4 Jul 2025 14:50:29 +0100 Subject: [PATCH] mkosi: enable arm64 job There's no acceleration, so nested VMs are too slow, only enable nspawn. --- .github/workflows/mkosi.yml | 48 +++++++++++++++++-- .../integration-test-wrapper.py | 5 +- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml index badcfa1daa8..d03b16de120 100644 --- a/.github/workflows/mkosi.yml +++ b/.github/workflows/mkosi.yml @@ -46,9 +46,9 @@ permissions: jobs: ci: - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.runner }} concurrency: - group: ${{ github.workflow }}-${{ matrix.distro }}-${{ matrix.release }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ matrix.distro }}-${{ matrix.release }}-${{ github.ref }}-${{ matrix.runner }} cancel-in-progress: true strategy: fail-fast: false @@ -56,60 +56,94 @@ jobs: include: - distro: arch release: rolling + runner: ubuntu-24.04 sanitizers: "" llvm: 0 cflags: "-O2 -D_FORTIFY_SOURCE=3" relabel: no vm: 1 + no_qemu: 0 + no_kvm: 0 - distro: debian release: testing + runner: ubuntu-24.04 sanitizers: "" llvm: 0 cflags: "-Og" relabel: no vm: 0 + no_qemu: 0 + no_kvm: 0 + - distro: debian + release: testing + runner: ubuntu-24.04-arm + sanitizers: "" + llvm: 0 + cflags: "-Og" + relabel: no + vm: 0 + no_qemu: 1 + no_kvm: 1 - distro: ubuntu release: noble + runner: ubuntu-24.04 sanitizers: "" llvm: 0 cflags: "-Og" relabel: no vm: 0 + no_qemu: 0 + no_kvm: 0 - distro: fedora release: "42" + runner: ubuntu-24.04 sanitizers: address,undefined llvm: 1 cflags: "-Og" relabel: yes vm: 0 + no_qemu: 0 + no_kvm: 0 - distro: fedora release: rawhide + runner: ubuntu-24.04 sanitizers: "" llvm: 0 cflags: "-Og" relabel: yes vm: 0 + no_qemu: 0 + no_kvm: 0 - distro: opensuse release: tumbleweed + runner: ubuntu-24.04 sanitizers: "" llvm: 0 cflags: "-Og" relabel: no vm: 0 + no_qemu: 0 + no_kvm: 0 - distro: centos release: "9" + runner: ubuntu-24.04 sanitizers: "" llvm: 0 cflags: "-Og" relabel: yes vm: 0 + no_qemu: 0 + no_kvm: 0 - distro: centos release: "10" + runner: ubuntu-24.04 sanitizers: "" llvm: 0 cflags: "-Og" relabel: yes vm: 0 + no_qemu: 0 + no_kvm: 0 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 @@ -215,14 +249,22 @@ jobs: MAX_LINES=() fi + if [ "${{ matrix.no_kvm }}" = 1 ] && [ "${{ matrix.no_qemu }}" = 0 ]; then + timeout_multiplier=4 + fi + # --preserve-env makes sure all the github actions environment variables are propagated which are # used in integration-test-wrapper.py to construct the `gh` command line to download the journals # of failed tests. sudo --preserve-env mkosi sandbox -- \ env \ TEST_PREFER_QEMU=${{ matrix.vm }} \ + TEST_NO_QEMU=${{ matrix.no_qemu }} \ + TEST_NO_KVM=${{ matrix.no_kvm }} \ + TEST_RUNNER=${{ matrix.runner }} \ meson test \ -C build \ + --timeout-multiplier="${timeout_multiplier:-1}" \ --no-rebuild \ --setup=integration \ --suite=integration-tests \ @@ -235,7 +277,7 @@ jobs: uses: actions/upload-artifact@v4 if: failure() && (github.repository == 'systemd/systemd' || github.repository == 'systemd/systemd-stable') with: - name: ci-mkosi-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.distro }}-${{ matrix.release }}-failed-test-journals + name: ci-mkosi-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.distro }}-${{ matrix.release }}-${{ matrix.runner }}-failed-test-journals path: | build/test/journal/*.journal build/meson-logs/* diff --git a/test/integration-tests/integration-test-wrapper.py b/test/integration-tests/integration-test-wrapper.py index 5f456cd3e9f..c3b8dbf77e7 100755 --- a/test/integration-tests/integration-test-wrapper.py +++ b/test/integration-tests/integration-test-wrapper.py @@ -672,7 +672,10 @@ def main() -> None: id = os.environ['GITHUB_RUN_ID'] wf = os.environ['GITHUB_WORKFLOW'] iter = os.environ['GITHUB_RUN_ATTEMPT'] - artifact = f'ci-{wf}-{id}-{iter}-{summary.distribution}-{summary.release}-failed-test-journals' + runner = os.environ['TEST_RUNNER'] + artifact = ( + f'ci-{wf}-{id}-{iter}-{summary.distribution}-{summary.release}-{runner}-failed-test-journals' # noqa: E501 + ) ops += [f'gh run download {id} --name {artifact} -D ci/{artifact}'] journal_file = Path(f'ci/{artifact}/test/journal/{name}.journal') -- 2.47.3