ci: build arm64 prebuilds on native ARM runners (drop QEMU + 32-bit arm)#37
Merged
Conversation
The arm prebuilds ran node containers under QEMU emulation, which is slow and hit "qemu: uncaught target signal 4 (Illegal instruction)" crashes on musl/arm64. GitHub now offers free native ARM runners for public repos. - alpine/glibc arm64 now run on `ubuntu-24.04-arm` as ordinary container jobs, mirroring the x64 jobs (no docker/setup-qemu-action, no `docker run` wrapper). - Drop the 32-bit `arm/v7` prebuilds — Zero does not support 32-bit ARM. - Rename + update publish `needs` accordingly. Co-Authored-By: Claude Opus 4.8 (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.
First step toward fixing the ICU linking situation: get the arm64 builders onto solid ground.
What
Replace the QEMU-emulated arm prebuilds with native
ubuntu-24.04-armcontainer jobs (free for public repos), arm64-only.prebuild-alpine-arm64,prebuild-linux-arm64,prebuild-linux-arm64-node-modernnow run onubuntu-24.04-armas ordinary container jobs — identical to the x64 jobs except the runner. Nodocker/setup-qemu-action, nodocker run --platformwrapper.arm/v7(32-bit ARM) — not supported by Zero.publishneeds:to the renamed jobs.Why
qemu: uncaught target signal 4 (Illegal instruction)crash we hit on emulated musl/arm64.-fPIC, or dropping ICU), the arm64 jobs will build it natively — no more 30–60 min QEMU ICU compiles.Validation
Prebuild jobs only run on
release, so this PR's CI won't exercise them. They mirror the working x64 jobs, so risk is low — they'll be validated when we cut the next release (1.1.1). Happy to do a throwaway test release first if you'd prefer to confirm the native runners before the real one.🤖 Generated with Claude Code