feat: add ARM64 binary support for awf CLI#965
Conversation
Publish both x64 and arm64 binaries in releases so agentic workflows can run natively on ARM64 self-hosted runners without QEMU emulation. - Add node18-linux-arm64 target to pkg config - Build and upload both binaries in release workflow - Add arm64 ELF validation step in CI - Update install.sh to auto-detect architecture (x86_64/aarch64) - Update release template docs for ARM64 Closes github/gh-aw#16005 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded. |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (1 files)
Coverage comparison generated by |
There was a problem hiding this comment.
Pull request overview
This PR adds ARM64 binary support to the awf CLI, complementing the existing ARM64 container images that were previously added. Users on ARM64 self-hosted runners previously had to use QEMU user-mode emulation to run the x64-only binary, which added latency and complexity.
Changes:
- Added
node18-linux-arm64target to pkg configuration for building ARM64 binaries - Updated
install.shto auto-detect architecture (x86_64/amd64 vs aarch64/arm64) and download the appropriate binary - Enhanced release workflow to build, validate, and publish both x64 and arm64 binaries
- Updated release documentation to include ARM64 installation instructions
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| package.json | Added node18-linux-arm64 target to pkg configuration |
| install.sh | Added architecture detection logic to dynamically set binary name based on system architecture |
| docs/RELEASE_TEMPLATE.md | Updated installation instructions to document ARM64 support and added dedicated ARM64 manual installation section |
| .github/workflows/release.yml | Modified build process to create both x64 and arm64 binaries, added ARM64 ELF validation, and included both binaries in release artifacts |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Go Build Test Results
Overall: ✅ PASS All Go projects successfully downloaded dependencies and passed tests.
|
C++ Build Test Results
Overall: PASS ✅ All C++ projects built successfully with CMake and make.
|
Deno Build Test Results
Overall: ✅ PASS All Deno tests completed successfully.
|
|
Smoke Test Results (Run #22165363222) Recent PRs: #954 docs: add api-proxy image publishing details to release guide, #955 feat(api-proxy): centralize port configuration in types.ts Status: PASS cc @Mossaka
|
Java Build Test Results
Overall: PASS ✅ All Java projects compiled and tested successfully through the AWF firewall with Maven proxy configuration.
|
.NET Build Test Results
Overall: PASS ✅ All .NET projects built and ran successfully.
|
Smoke Test ResultsLast 2 Merged PRs:
Test Results:
Overall Status: PASS
|
Rust Build Test Results
Overall: PASS All Rust projects built and tested successfully.
|
Node.js Build Test Results
Overall: ✅ PASS All Node.js projects successfully installed dependencies and passed their test suites.
|
|
docs: add api-proxy image publishing details to release guide
|
Chroot Version Comparison Test Results
Overall Result: ❌ Tests FAILED - Not all runtime versions match between host and chroot environment. The chroot environment uses the host's installed binaries for transparent execution. Version mismatches indicate the binaries may not be properly accessible or different versions are being picked up inside the container.
|
|
💫 TO BE CONTINUED... Smoke Claude failed! Our hero faces unexpected challenges... |
|
🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation... |
C++ Build Test Results
Overall: PASS ✅ All C++ projects built successfully with CMake and make.
|
Node.js Build Test ResultsAll Node.js projects tested successfully! ✅
Overall: ✅ PASS All projects installed dependencies and passed their test suites without errors.
|
Deno Build Test Results
Overall: ✅ PASS All Deno tests completed successfully.
|
Add npm overrides for minimatch>=10.2.1 to fix GHSA-3ppc-4f35-3m26 (ReDoS via repeated wildcards). This resolves 24 high-severity findings from transitive deps in jest, eslint, and typescript-eslint. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
b0c3679 to
ab16216
Compare
Bun Build Test Results
Overall: PASS ✅ All Bun projects installed and tested successfully.
|
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded. |
C++ Build Test Results
Overall: PASS ✅ All C++ projects built successfully.
|
Deno Build Test Results
Overall: ✅ PASS All Deno tests completed successfully.
|
Go Build Test Results
Overall: PASS ✅ All Go projects successfully built and passed their tests.
|
Smoke Test ResultsLast 2 Merged PRs:
Test Results:
Overall: PASS cc: @Mossaka
|
Bun Build Test Results
Overall: PASS All Bun projects installed and tested successfully.
|
Smoke Test ResultsLast 2 merged PRs:
Test Results:
Status: PASS
|
Build Test: Node.js - ResultsAll Node.js build tests passed successfully! ✅
Overall: PASS ✅ All three projects installed dependencies and ran tests without errors.
|
|
PR titles: feat: add ARM64 binary support for awf CLI | Remove auto-generated CodeQL symlink
|
Java Build Test Results
Overall: PASS All Java projects compiled and tested successfully through the AWF firewall.
|
Chroot Version Comparison Test Results
Overall Status: ❌ Tests Failed Python and Node.js versions differ between host and chroot environments. Only Go versions match.
|
Rust Build Test Results
Overall: PASS ✅ All Rust projects built and tested successfully.
|
Summary
awf-linux-x64andawf-linux-arm64binaries in releases usingpkginstall.shto auto-detect architecture (x86_64/aarch64) and download the correct binaryContext
Follow-up to the ARM64 container images fix. The container images now support ARM64 (
linux/amd64,linux/arm64), but theawfCLI binary itself only shippedawf-linux-x64. On ARM64 self-hosted runners, the binary fails with:Users have been working around this with QEMU user-mode emulation, which adds latency and complexity.
Note: The
install_awf_binary.shscript ingh-awalso needs a corresponding update to detect architecture — that change is staged locally and will need a separate PR in thegh-awrepo.Closes github/gh-aw#16005
Test plan
install.shdownloads correct binary on ARM64 runner🤖 Generated with Claude Code