ci: run linux/arm64 natively instead of only cross-compiling it - #5
Merged
Conversation
`docs/releasing.md` and `release.yml` build four targets — linux/amd64, linux/arm64, darwin/amd64, darwin/arm64. The test matrix covered two systems, and because `macos-latest` is Apple Silicon that meant linux/amd64 and darwin/arm64 ran while linux/arm64 was only ever cross-compiled at release time. `ubuntu-24.04-arm` is a standard hosted runner, unmetered on public repositories, so covering it costs nothing. Jobs in the matrix run in parallel, so wall-clock is unchanged. darwin/amd64 remains uncovered: it needs `macos-13`, the last Intel image, whose retirement is already announced. Adding a lane on a runner being withdrawn buys a signal that expires; the alternative is to stop shipping that target. The same gap was closed in `github-device-sync` this week (NDDev-OpenNetwork/github-device-sync#27), where both new lanes passed on their first run — `ubuntu-24.04-arm` in 109s. `Gate` is the only required status context here, so the added matrix entry introduces no new required check and nothing was pinned to the old names. Verified locally on linux/amd64: `go vet ./...` clean, `go test -race ./...` every package ok, actionlint 1.7.12 clean.
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.
docs/releasing.mdandrelease.ymlbuild four targets:The test matrix covered two systems. Because
macos-latestis Apple Silicon, that meant:ubuntu-latestmacos-latestubuntu-24.04-armis a standard hosted runner and unmetered on public repositories, so the third row costs nothing. Matrix jobs run in parallel, so wall-clock is unchanged.darwin/amd64 stays uncovered
It needs
macos-13, the last Intel image, whose retirement is already announced. A lane on a runner being withdrawn buys a signal that expires. The real choice there is whether that target is still worth shipping.Precedent
The same gap was closed in
github-device-syncthis week — NDDev-OpenNetwork/github-device-sync#27 — where both new lanes passed on their first run,ubuntu-24.04-armin 109s andmacos-latestin 273s.Safety of the change
Gateis the only required status context here, so the added matrix entry introduces no new required check and nothing was pinned to the existingTest (…)names.Verification
Locally on linux/amd64:
go vet ./...clean,go test -race ./...every package ok. actionlint 1.7.12 clean. The arm64 lane itself has never run here; if it goes red, that is the finding.