From 27273bd9ba6b12b8c65a707548c8407e9e4d9a15 Mon Sep 17 00:00:00 2001 From: Yuriy Kohut Date: Tue, 26 May 2026 17:20:27 +0300 Subject: [PATCH 1/2] fix(ci): Azure: use 40Gb disk for 'almalinux-9-aarch64' RunsOn runner. --- .github/workflows/azure-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/azure-build.yml b/.github/workflows/azure-build.yml index 3e006d41..5aab17bd 100644 --- a/.github/workflows/azure-build.yml +++ b/.github/workflows/azure-build.yml @@ -166,7 +166,7 @@ jobs: runs-on: >- ${{ github.repository_owner == 'AlmaLinux' && - format('runs-on={0}/family=a1.metal/image=almalinux-9-aarch64', github.run_id) + format('runs-on={0}/family=a1.metal/image=almalinux-9-aarch64/volume=40g', github.run_id) || github.run_id }} From 08b73efb4b9d5f2ca850abf3ffc52aa124fb1a05 Mon Sep 17 00:00:00 2001 From: Jonathan Wright Date: Tue, 9 Jun 2026 12:43:21 -0500 Subject: [PATCH 2/2] fix(ci): GCP test: stop per-shape jobs skipping when build-cit is skipped MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The per-shape jobs carry a custom job-level `if`, which makes GitHub implicitly prepend success(). success() returns false when any needs job is skipped, and build-cit is skipped whenever cit_git_repo is empty — so every shape was skipped regardless of the arch input. Use !cancelled() to suppress the implicit success(), and gate explicitly on test-gcp-initialtest so a failed smoke test still blocks while build-cit's skipped/success state is ignored. --- .github/workflows/gcp-test.yml | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gcp-test.yml b/.github/workflows/gcp-test.yml index 3a15759f..5a8ab69d 100644 --- a/.github/workflows/gcp-test.yml +++ b/.github/workflows/gcp-test.yml @@ -80,8 +80,11 @@ jobs: # Optional: build cloud-image-tests from a user-supplied git repo+ref and # publish a docker tarball as an artifact. All test jobs `needs:` this; when - # cit_git_repo is empty this job is skipped, which GitHub Actions treats as - # non-blocking (skipped != failed), so test jobs run as today. + # cit_git_repo is empty this job is skipped. A skipped need is only + # non-blocking for jobs with NO custom `if` (e.g. test-gcp-initialtest). Jobs + # with a custom `if` (the per-shape jobs) get an implicit success() prepended, + # which DOES treat a skipped need as failure — so those jobs use !cancelled() + # + an explicit needs.test-gcp-initialtest.result check instead. build-cit: name: Build cloud-image-tests from source if: inputs.cit_git_repo != '' @@ -200,7 +203,16 @@ jobs: id-token: write contents: read runs-on: "${{ github.repository_owner == 'AlmaLinux' && format('runs-on={0}/runner=2cpu-linux-x64/spot=false/volume=100g/image=almalinux-10-x86_64', github.run_id) || 'ubuntu-24.04' }}" - if: inputs.arch == 'ALL' || inputs.arch == 'x86_64' + # A custom job-level `if` makes GitHub implicitly prepend success(), which + # returns false when ANY needs job is skipped — and build-cit IS skipped + # whenever cit_git_repo is empty, which would wrongly skip every shape. + # The !cancelled() status function suppresses that implicit success(); we + # then gate explicitly on test-gcp-initialtest so a failed smoke test still + # blocks, while build-cit's skipped/success state is intentionally ignored. + if: >- + !cancelled() + && needs.test-gcp-initialtest.result == 'success' + && (inputs.arch == 'ALL' || inputs.arch == 'x86_64') timeout-minutes: 720 strategy: fail-fast: false @@ -344,7 +356,16 @@ jobs: id-token: write contents: read runs-on: ubuntu-24.04 - if: inputs.arch == 'ALL' || inputs.arch == 'aarch64' + # A custom job-level `if` makes GitHub implicitly prepend success(), which + # returns false when ANY needs job is skipped — and build-cit IS skipped + # whenever cit_git_repo is empty, which would wrongly skip every shape. + # The !cancelled() status function suppresses that implicit success(); we + # then gate explicitly on test-gcp-initialtest so a failed smoke test still + # blocks, while build-cit's skipped/success state is intentionally ignored. + if: >- + !cancelled() + && needs.test-gcp-initialtest.result == 'success' + && (inputs.arch == 'ALL' || inputs.arch == 'aarch64') timeout-minutes: 720 strategy: fail-fast: false