Skip to content

ci: add a builds aggregation gate to require all host builds#478

Merged
etrobert merged 1 commit into
mainfrom
ci/build-gate
Jul 8, 2026
Merged

ci: add a builds aggregation gate to require all host builds#478
etrobert merged 1 commit into
mainfrom
ci/build-gate

Conversation

@etrobert-bot

@etrobert-bot etrobert-bot commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

What

Add an all-builds aggregation gate to the Build workflow so all host builds can be required for merging via one stable status, instead of the dynamic per-host names (tower, leod, pi, aaron).

all-builds:
  name: all-builds
  needs: [discover, probe, build]
  if: always()
  runs-on: ubuntu-latest
  steps:
    - if: >-
        ${{ contains(needs.*.result, 'failure')
          || contains(needs.*.result, 'cancelled')
          || contains(needs.*.result, 'skipped') }}
      run: exit 1

needs: build requires the whole matrix job, which is failure if any host leg fails (fail-fast: false), so every dynamically-discovered host is transitively required — add a machine to the flake and it's covered automatically, no branch-protection edit. if: always() makes the gate run even when a build fails (a skipped required check would otherwise count as passing).

Naming

Paired with the Checks workflow's gate, renamed in tandem to all-checks / all-builds — symmetric and unique (branch protection matches by bare job name, so both can't be all).

Follow-up (you, in branch protection)

Require all-checks and all-builds for main (replacing all).

Verification

  • actionlint, yamllint --strict → clean
  • gate confirmed green on CI (waited on all four 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 <noreply@anthropic.com>
@etrobert etrobert merged commit 6ef69a3 into main Jul 8, 2026
16 checks passed
@etrobert etrobert deleted the ci/build-gate branch July 8, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants