From 50dcc0089d649b9f46c753729a099cf1bd7e3b50 Mon Sep 17 00:00:00 2001 From: Maciek Borzecki Date: Tue, 20 Oct 2026 15:41:05 +0200 Subject: [PATCH 1/3] ci: split tests-main and tests-snapd into per-arch matrix runs Extend the strategy matrix of both jobs with arch: [amd64, arm64] and select the spread backend/system per arch (openstack-ext vs openstack-arm-ext, ubuntu-core-26-64 vs ubuntu-core-26-arm-64) instead of running both architectures sequentially in one job. Rename the core snap in tests-snapd using the matrix arch instead of the host arch. Signed-off-by: Maciek Borzecki --- .github/workflows/tests.yaml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 541526da..28f679ed 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -117,6 +117,7 @@ jobs: fail-fast: false matrix: variant: ${{ fromJSON(needs.setup.outputs.matrix) }} + arch: [amd64, arm64] # We want to run tests here only for one of the variants, as in this # case the user is introduced by modifying the snapd snap and we do not # use neither cloud-init nor system-user assertions. @@ -135,17 +136,12 @@ jobs: with: name: core-snap-${{ matrix.variant }} - - name: Run x86 tests + - name: Run tests uses: ./.github/actions/run-spread-tests with: base-variant: ${{ matrix.variant }} - spread-command: spread openstack-ext:tests/spread/main/ - - - name: Run arm64 tests - uses: ./.github/actions/run-spread-tests - with: - base-variant: ${{ matrix.variant }} - spread-command: spread openstack-arm-ext:tests/spread/main/ + spread-command: | + ${{ matrix.arch == 'amd64' && 'spread openstack-ext:tests/spread/main/' || 'spread openstack-arm-ext:tests/spread/main/' }} - name: Discard spread workers if: always() @@ -161,6 +157,7 @@ jobs: fail-fast: false matrix: variant: ${{ fromJSON(needs.setup.outputs.matrix) }} + arch: [amd64, arm64] env: BUILD_VARIANT: ${{ matrix.variant }} SNAPD_USE_PROXY: 'true' @@ -205,7 +202,7 @@ jobs: echo "************* BUILDING CORE26 IMAGE *************" uc_snap="$(get_core_snap_name)" - mv core26_"$(get_arch)".artifact "$uc_snap" + mv core26_${{ matrix.arch }}.artifact "$uc_snap" insert_user=true build_base_image "$insert_user" @@ -217,7 +214,7 @@ jobs: with: working-directory: snapd base-variant: ${{ matrix.variant }} - spread-command: SPREAD_EXTERNAL_ADDRESS=localhost:8022 spread external:ubuntu-core-26-64:tests/smoke/ + spread-command: SPREAD_EXTERNAL_ADDRESS=localhost:8022 spread external:${{ matrix.arch == 'amd64' && 'ubuntu-core-26-64' || 'ubuntu-core-26-arm-64' }}:tests/smoke/ - name: Discard spread workers if: always() From 66f5876a011754ec79808a159b7df1cb10cb9df2 Mon Sep 17 00:00:00 2001 From: Maciek Borzecki Date: Tue, 20 Oct 2026 18:24:59 +0200 Subject: [PATCH 2/3] fixup! ci: split tests-main and tests-snapd into per-arch matrix runs --- .github/workflows/tests.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 28f679ed..53b46405 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -140,8 +140,7 @@ jobs: uses: ./.github/actions/run-spread-tests with: base-variant: ${{ matrix.variant }} - spread-command: | - ${{ matrix.arch == 'amd64' && 'spread openstack-ext:tests/spread/main/' || 'spread openstack-arm-ext:tests/spread/main/' }} + spread-command: ${{ matrix.arch == 'amd64' && 'spread openstack-ext:tests/spread/main/' || 'spread openstack-arm-ext:tests/spread/main/' }} - name: Discard spread workers if: always() From 19160bc782f6c4b92ace6d443289818e6e4305b6 Mon Sep 17 00:00:00 2001 From: Maciek Borzecki Date: Tue, 20 Oct 2026 18:38:17 +0200 Subject: [PATCH 3/3] fixup! ci: split tests-main and tests-snapd into per-arch matrix runs --- .github/workflows/tests.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 53b46405..daac96d2 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -156,7 +156,6 @@ jobs: fail-fast: false matrix: variant: ${{ fromJSON(needs.setup.outputs.matrix) }} - arch: [amd64, arm64] env: BUILD_VARIANT: ${{ matrix.variant }} SNAPD_USE_PROXY: 'true' @@ -201,7 +200,7 @@ jobs: echo "************* BUILDING CORE26 IMAGE *************" uc_snap="$(get_core_snap_name)" - mv core26_${{ matrix.arch }}.artifact "$uc_snap" + mv core26_"$(get_arch)".artifact "$uc_snap" insert_user=true build_base_image "$insert_user" @@ -213,7 +212,7 @@ jobs: with: working-directory: snapd base-variant: ${{ matrix.variant }} - spread-command: SPREAD_EXTERNAL_ADDRESS=localhost:8022 spread external:${{ matrix.arch == 'amd64' && 'ubuntu-core-26-64' || 'ubuntu-core-26-arm-64' }}:tests/smoke/ + spread-command: SPREAD_EXTERNAL_ADDRESS=localhost:8022 spread external:ubuntu-core-26-64:tests/smoke/ - name: Discard spread workers if: always()