Repository navigation
CI: run macOS jobs on macos-15 until actions/runner-images#14940 is fixed - #12468
mergify[bot] merged 1 commit into
Conversation
…ixed The macos-26-arm64 image that macos-latest maps to (20261013.0424.1, rolled out on 2026-10-15) ships the Command Line Tools 27.0 with the macOS 27 SDK but keeps Xcode 26.6 as the default toolchain. GHC's link line passes -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib, so Xcode 26.6's ld reads the SDK 27 library stubs, whose new arm64e.x1 architecture it cannot parse, and every link fails with "tapi error: malformed file". That takes down every macOS Validate job, the macOS Bootstrap job and the aarch64 release build, on every GHC (haskell#12465). macos-15 has a consistent toolchain (Command Line Tools and Xcode 16.4). Each pin carries a comment, so they can go back to macos-latest once the image is fixed. Also stop the Bootstrap matrix from failing fast: the macOS failure was cancelling the four Linux jobs, so their results were lost too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MWUpUBVSHTCWHGYNCwsjFL
|
To be clear about scope: this is the most obvious stop-gap, not a fix. The bug is in the runner image (actions/runner-images#14940), and these pins should go once GitHub fixes it. Alternatives that keep us on macOS 26, such as selecting the Command Line Tools as the active toolchain (#12465 (comment)), may well work, but they need investigation before we rely on them. Why a wholesale pin for now:
One caveat: the macos-15 image hasn't had the October update yet. If GitHub ships it the same Command Line Tools update, this pin stops helping, which is one more reason to look into the |
Merge Queue Status
This pull request spent 10 minutes 42 seconds in the queue, including 2 seconds running CI. Required conditions to merge
|
Works around #12465; upstream bug: actions/runner-images#14940.
Every PR's macOS jobs have failed since about 2026-10-15 10:30 UTC, regardless of content; master was last green on 2026-10-14 and the merge queue runs the same workflows, so nothing can merge. The
macos-26-arm64image thatmacos-latestmaps to (20261013.0424.1) ships the Command Line Tools 27.0 with the macOS 27 SDK, but keeps Xcode 26.6 as the default toolchain. GHC's link line passes-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib, so Xcode 26.6'sldreads the SDK 27 library stubs, which list a newarm64e.x1architecture it cannot parse:This PR:
macos-15(arm64, with a consistent toolchain: Command Line Tools and Xcode 16.4) instead ofmacos-latest: the Validate and Dogfooding matrices invalidate.yml, the macOS Bootstrap job, and the aarch64 build and test jobs inreusable-release.yml, which the nightly "Build and release" run uses. Each pin carries a comment pointing at macos-26-arm64 20261013.0424.1 broke GHC (linking phase) actions/runner-images#14940, so they can be reverted once the image is fixed; Bootstrap job fails on macos-latest (GHC 9.12.4) due to linker error with SDK TBD files #12465 can stay open to track that.fail-fast: falseon the Bootstrap matrix: the macOS failure was cancelling the four Linux Bootstrap jobs, hiding their results.Notes for review:
… macos-latest …to… macos-15 …. Only the post jobs are required checks, so branch protection and mergify are unaffected.macos-latestlines, so this needs a backport.sudo xcode-select -s /Library/Developer/CommandLineTools, suggested in Bootstrap job fails on macos-latest (GHC 9.12.4) due to linker error with SDK TBD files #12465), so that linker and SDK match again. Nobody has shown it working yet, and it would move all macOS CI onto a new linker at once, so the pin seems the safer unblock.Template B: This PR does not modify behaviour or interface
🤖 Generated with Claude Code
https://claude.ai/code/session_01MWUpUBVSHTCWHGYNCwsjFL