Skip to content

chore(ci): gate arm64/macOS matrix jobs on repo vars + continue-on-error#75

Open
luthermonson wants to merge 1 commit into
mainfrom
chore/ci-arm64-noblock
Open

chore(ci): gate arm64/macOS matrix jobs on repo vars + continue-on-error#75
luthermonson wants to merge 1 commit into
mainfrom
chore/ci-arm64-noblock

Conversation

@luthermonson
Copy link
Copy Markdown
Contributor

Summary

Stops the arm64/macOS matrix builds from sitting in Pending on every PR. Two changes per gated job:

  • `if: ${{ vars.HAS__RUNNER == 'true' }}` — when the repo variable isn't set (i.e. no runner online), the job is Skipped instead of stuck Pending. To turn the matrix back on once a runner is up:
    ```
    gh variable set HAS_LINUX_ARM64_RUNNER --body true
    gh variable set HAS_MACOS_ARM64_RUNNER --body true
    ```
  • `continue-on-error: true` — when the runner is online, a failure here doesn't fail the PR check group. These two platforms aren't covered by the primary CI box so we tolerate flake; the Linux+Windows runs catch real regressions.

`Build (Windows amd64)` is unchanged — the self-hosted Windows runner is live (it's this box) and that build sanity check is genuinely useful.

Background

PR #73 and #74 both have `Build (Linux arm64)` and `Build (macOS arm64)` stuck Pending right now. Those PRs are otherwise green and merge-ready; this fixes the symptom that makes them look not-merge-ready.

Test plan

Follow-ups

Branch protection rules (settings/branches) may still list `Build (Linux arm64)` / `Build (macOS arm64)` as required checks — if so, merges on PRs where these are Skipped will be blocked. Check that and either remove them from required, or rely on Skipped counting as success (GitHub's docs say it does for required-checks purposes since `if:`-skipped jobs report `conclusion: skipped` which the merge gate accepts).

Build (Linux arm64) and Build (macOS arm64) have been sitting in
"Pending" forever on every PR because no self-hosted runner with the
matching labels is online. That makes the PR checks UI look broken
and trains people to ignore yellow checks.

Two changes per gated job:

  if: ${{ vars.HAS_<ARCH>_RUNNER == 'true' }}
    Job is "Skipped" rather than "Pending" when the operator hasn't
    set the corresponding repo variable. To re-enable once a runner
    is online:
      gh variable set HAS_LINUX_ARM64_RUNNER --body true
      gh variable set HAS_MACOS_ARM64_RUNNER --body true

  continue-on-error: true
    Even when the runner IS online, a failure here doesn't fail the
    PR check group. These two platforms aren't covered by the
    primary CI runner so we tolerate flake there.

Windows amd64 stays required (no gate, no continue-on-error) — the
self-hosted Windows runner is live on the build machine and the
build sanity check is genuinely useful there.
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.

1 participant