ci(release): drop emulated arm64 build and fix the inert layer cache - #4
Merged
Conversation
The Docker build step was 989s of an 18m25s release run. Every other step in the job totalled about 90s, so it is the only thing worth optimising. Two causes, both addressed here. arm64 was emulated for nobody. The only deploy target for this fork is the yams VM, which is x86_64. Building linux/arm64 under QEMU roughly doubled the work to produce an image that nothing pulls, and emulated builds run several times slower than native. Dropped to linux/amd64 and removed the now-pointless QEMU setup step. Both are easy to restore if an ARM host ever needs this. The GitHub Actions layer cache never hit. cache-to wrote to scope `buildx-<version>` while cache-from read `buildx-amd64` and `buildx-arm64`, so the scopes could never match: no release read a cache entry that another release had written. Every build was cold, and each one left behind a version-scoped entry that nothing would ever read again. Read and write the same scope now. The cache bug is upstream's and affects their releases too - worth offering back. The arm64 removal is fork-specific and should not be. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Knip Code AnalysisFound 8 total issues
View details
Use |
|
🚫 Security audit failed Critical Failures
Warnings
Passed (36/38)
Summary: 36/38 checks passed See |
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.
The Docker build step was 989s of an 18m25s release run; every other step totalled ~90s. Two causes.
arm64 was emulated for nobody
The only deploy target for this fork is the yams VM, which is
x86_64. Buildinglinux/arm64under QEMU roughly doubled the work to produce an image nothing pulls, and emulated builds run several times slower than native. Dropped tolinux/amd64and removed the now-pointless QEMU setup step. Both trivially restorable if an ARM host ever needs this.The layer cache never hit — upstream bug
The scopes could never match, so no release read a cache entry another release had written. Every build was cold, and each left behind a version-scoped entry nothing would ever read again. Now reads and writes the same scope.
The cache bug affects upstream's own releases too and is worth offering back. The arm64 removal is fork-specific and should not be.
🤖 Generated with Claude Code