Build macOS release binaries on macos-26 with --parallelism 4 - #130
Open
Bencheng21 wants to merge 2 commits into
Open
Bencheng21 wants to merge 2 commits into
Bencheng21 wants to merge 2 commits into
Conversation
Pin the binaries job to the macos-26-arm64 label instead of macos-latest, pass --parallelism 4 to GoReleaser so all four darwin/linux targets build concurrently regardless of the semaphore GOMAXPROCS would pick, and log the runner hardware up front so the observed core count is recorded rather than inferred. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
What
Three changes to the
goreleaser-binariesjob in.github/workflows/release.yaml:macos-26instead ofmacos-latest.--parallelism 4to GoReleaser. Without it GoReleaser sizes its build semaphore fromruntime.GOMAXPROCS(0), so the runner's core count silently decides how many of the four targets build at once.Report runner hardwarediagnostic step at the top of the job, logging the runner label, core counts, CPU brand, and memory.Why
The standard macOS tier is billed as "3-core or 4-core", so the effective build concurrency has been varying between releases rather than being something we control. Pinning the label and setting parallelism explicitly makes the build deterministic; the diagnostic step records the hardware we actually got instead of leaving us to infer it from timings.
Testing
Branch is wired up for a live run via
ConductorOne/baton-github-teston branchtest-macos-26-arm64-parallelism, which points itsuses:at this branch. Triggering it requires pushing a tag there.Note: the branch name still reads
macos-26-arm64-parallelismfrom the first revision; it is kept as-is so the test repo'suses:ref stays valid.🤖 Generated with Claude Code