From eab60ce4aa57fe1138ed6046e6ea782bd2e7f2de Mon Sep 17 00:00:00 2001 From: etrobert-bot Date: Wed, 8 Jul 2026 15:55:06 +0200 Subject: [PATCH] ci: add an all-builds aggregation gate to require all host builds A single 'all-builds' job needs the whole build matrix and fails unless every leg succeeded, so it can be the one required status for merging instead of the dynamic per-host names. Named 'all-builds' (paired with the Checks workflow's 'all-checks' gate) since branch protection matches required checks by bare job name. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/build.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 707712a1..16684c4f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -112,3 +112,21 @@ jobs: --accept-flake-config \ --print-build-logs \ --option stalled-download-timeout 10 + + # Aggregation gate: the single required status. It transitively requires every + # dynamically-discovered host build (the matrix job is failure if any leg + # fails), so new hosts are covered without touching branch protection. + all-builds: + name: all-builds + needs: [discover, probe, build] + if: always() + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Verify all builds succeeded + if: >- + ${{ contains(needs.*.result, 'failure') + || contains(needs.*.result, 'cancelled') + || contains(needs.*.result, 'skipped') }} + run: exit 1