Skip to content

[fix] prevent macos-13 runner starvation from blocking docker image update#395

Merged
morningman merged 1 commit into
apache:mainfrom
hello-stephen:fix-macos-runner-blocks-docker-update
Jun 1, 2026
Merged

[fix] prevent macos-13 runner starvation from blocking docker image update#395
morningman merged 1 commit into
apache:mainfrom
hello-stephen:fix-macos-runner-blocks-docker-update

Conversation

@hello-stephen
Copy link
Copy Markdown
Contributor

@hello-stephen hello-stephen commented Jun 1, 2026

Problem

The `build` matrix job includes `macOS-x86_64` running on `macos-13`. GitHub Actions `macos-13` (Intel Mac) runners have become increasingly scarce and can queue for up to 24 hours before timing out. This caused a cascade of failures:

  1. `macos-13` runner waits 24h → times out → entire `build` matrix result = `failure`
  2. `update-docker` condition requires `build.result == 'success'` → skipped
  3. `success` job depends on `update-docker` → skipped
  4. `failure` job has `if: failure()` but `update-docker` was skipped (not failed), so `failure` also does not run
  5. Release status is stuck at `BUILDING` indefinitely; Docker image is never updated

This was observed in run #26616785582 where the `macOS-x86_64` build waited exactly 24h0m0s.

Fix

`build-4.0.yml`

  • Remove `macOS-x86_64` (macos-13) from the matrix entirely — branch-4.0 has no downstream consumers that need Intel Mac artifacts; Apple Silicon covers all active Mac use cases.
  • `fail-fast: false` so a future matrix failure does not cancel other in-progress builds.
  • `if: always() && failure()` on the `failure` job — fires even when `update-docker` is skipped rather than failed, preventing status from being stuck at `BUILDING`.

`build.yml`

  • Keep `macOS-x86_64` but add `continue-on-error: true` — master branch still ships Intel Mac artifacts when runners are available, but a timeout no longer blocks `update-docker`.
  • `fail-fast: false` so a macOS timeout does not cancel the arm64/Linux builds.
  • `if: always() && failure()` on the `failure` job — same as above.

@hello-stephen hello-stephen force-pushed the fix-macos-runner-blocks-docker-update branch 2 times, most recently from 28b5ab0 to 7274e51 Compare June 1, 2026 13:52
…pdate

macos-13 (Intel Mac) GitHub Actions runners have become increasingly scarce
and regularly queue for 24h before timing out. This caused the entire build
matrix to fail, blocking update-docker and leaving the release status stuck
at BUILDING indefinitely.

- Remove macOS-x86_64 (macos-13) from the build matrix: Intel Mac is being
  phased out and no downstream consumer (Docker image, Linux workflow) needs
  darwin-x86_64 artifacts; Apple Silicon covers all active Mac use cases
- Add fail-fast: false so a future matrix failure does not cancel remaining
  in-progress builds
- Fix failure job condition to always() && failure() so it fires even when
  update-docker is skipped rather than failed, preventing status from being
  stuck at BUILDING
@hello-stephen hello-stephen force-pushed the fix-macos-runner-blocks-docker-update branch from 7274e51 to 8584f8e Compare June 1, 2026 13:55
@morningman morningman merged commit 04c9c4c into apache:main Jun 1, 2026
@hello-stephen hello-stephen deleted the fix-macos-runner-blocks-docker-update branch June 2, 2026 02:15
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