ci: build darwin-x86_64 natively on macos-15-intel#11
Merged
alexeagle merged 2 commits intoJun 30, 2026
Conversation
GitHub retired its last Intel hosted runner (macos-13), so the darwin-x86_64 release leg sat 24h "awaiting a runner" and never built, blocking the whole release (run 28265340973) and shipping 8.6.0-figma2 without the macOS Intel asset. Build darwin-x86_64 on macos-14 (Apple silicon) via --cpu=darwin_x86_64 --macos_cpus=x86_64, using the arm64 bootstrap Bazelisk for the host. This is exactly the cross-compile fallback the prior code comment anticipated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Supersedes the --cpu cross-compile attempt, which failed: cross-compiling darwin-x86_64 from an arm64 runner makes abseil's randen_hwaes apply -maes/-msse4.1 to the arm64 exec-config tools (bazelbuild#14803). Upstream Bazel avoids this by building each arch natively on dedicated macOS machines (bazelci.py macos vs macos_arm64 queues); we do the same using GitHub's native Intel image. macos-13 was retired 2025-12-04, which is why the leg starved for a runner and blocked the release (run 28265340973). macos-15-intel is GitHub's replacement native x86_64 image (available until ~Aug 2027). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author
|
LGTM thanks Claude |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
GitHub retired its Intel runner
macos-13on 2025-12-04 (changelog, runner-images#13046). Thebuild darwin-x86_64leg is pinned tomacos-13, so it sits "awaiting a runner" until GitHub's 24h queue ceiling kills it — it never starts. Becausereleasehasneeds: [..., build-darwin], this blocks the entire release.That's what happened on run 28265340973: the other three legs built in ~15–17m, darwin-x86_64 timed out after 24h, and
8.6.0-figma2shipped withoutbazel-8.6.0-figma2-darwin-x86_64— Intel-Mac bazelisk gets a 404.Why native (not cross-compile or Rosetta)
I first tried cross-compiling from an arm64
macos-14runner (--cpu=darwin_x86_64 --macos_cpus=x86_64). It fails: abseil'sranden_hwaesapplies x86-only-maes/-msse4.1to the arm64 exec-config build tools (clang++: error: unsupported option '-maes' for target 'arm64'), a known Bazel macOS cross-compile pitfall (bazelbuild/bazel#14803, #24264).Upstream Bazel doesn't cross-compile either — its release CI builds each macOS arch natively on dedicated machines, via separate
macosandmacos_arm64Buildkite queues (bazelci.py). No--cpu, no Rosetta anywhere.Fix
Move the
darwin-x86_64leg to GitHub's native Intel imagemacos-15-intel(runner-images#13045) — the documented replacement for the retiredmacos-13. The build stays a plain native build (no--cpuflags, no emulation), identical in shape to the oldmacos-13path.darwin-x86_64matrix leg:runner: macos-13→macos-15-intel(keepsbazelisk_arch: amd64)TODO(aeagle)for the ~Aug 2027 hosted-x86_64 sunset (move to a self-hosted Intel Mac or drop Intel then)Test plan
workflow_dispatcha release; confirmbuild darwin-x86_64picks up amacos-15-intelrunner and builds natively (no 24h queue wait)bazel-<ver>-darwin-x86_64(+.sha256)filereports a Mach-O x86_64 binary and it runs on a macOS Intel host🤖 Generated with Claude Code