Skip to content

Comments

feat: add ARM64 binary support for awf CLI#965

Merged
Mossaka merged 2 commits intomainfrom
feat/arm64-binary-support
Feb 19, 2026
Merged

feat: add ARM64 binary support for awf CLI#965
Mossaka merged 2 commits intomainfrom
feat/arm64-binary-support

Conversation

@Mossaka
Copy link
Collaborator

@Mossaka Mossaka commented Feb 19, 2026

Summary

  • Build and publish both awf-linux-x64 and awf-linux-arm64 binaries in releases using pkg
  • Update install.sh to auto-detect architecture (x86_64/aarch64) and download the correct binary
  • Add arm64 ELF validation step in the release workflow (can't smoke test arm64 on x64 CI)
  • Update release template docs with ARM64 installation instructions

Context

Follow-up to the ARM64 container images fix. The container images now support ARM64 (linux/amd64,linux/arm64), but the awf CLI binary itself only shipped awf-linux-x64. On ARM64 self-hosted runners, the binary fails with:

x86_64-binfmt-P: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory

Users have been working around this with QEMU user-mode emulation, which adds latency and complexity.

Note: The install_awf_binary.sh script in gh-aw also needs a corresponding update to detect architecture — that change is staged locally and will need a separate PR in the gh-aw repo.

Closes github/gh-aw#16005

Test plan

  • Unit tests pass (794/794)
  • Lint passes (0 errors)
  • Verify release workflow produces both binaries on next release
  • Verify install.sh downloads correct binary on ARM64 runner
  • Verify ARM64 binary runs on ARM64 self-hosted runner

🤖 Generated with Claude Code

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>
Copilot AI review requested due to automatic review settings February 19, 2026 01:53
@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

🎬 THE ENDSmoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨

@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

✅ Coverage Check Passed

Overall Coverage

Metric Base PR Delta
Lines 82.30% 82.45% 📈 +0.15%
Statements 82.23% 82.37% 📈 +0.14%
Functions 82.74% 82.74% ➡️ +0.00%
Branches 74.46% 74.55% 📈 +0.09%
📁 Per-file Coverage Changes (1 files)
File Lines (Before → After) Statements (Before → After)
src/docker-manager.ts 83.2% → 83.8% (+0.55%) 82.5% → 83.0% (+0.54%)

Coverage comparison generated by scripts/ci/compare-coverage.ts

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-arm64 target to pkg configuration for building ARM64 binaries
  • Updated install.sh to 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.

@github-actions
Copy link
Contributor

Go Build Test Results

Project Download Tests Status
color PASS ✅ PASS
env PASS ✅ PASS
uuid PASS ✅ PASS

Overall: ✅ PASS

All Go projects successfully downloaded dependencies and passed tests.

AI generated by Build Test Go

@github-actions
Copy link
Contributor

C++ Build Test Results

Project CMake Build Status
fmt PASS
json PASS

Overall: PASS

All C++ projects built successfully with CMake and make.

AI generated by Build Test C++

@github-actions
Copy link
Contributor

Deno Build Test Results

Project Tests Status
oak 1/1 ✅ PASS
std 1/1 ✅ PASS

Overall: ✅ PASS

All Deno tests completed successfully.

AI generated by Build Test Deno

@github-actions
Copy link
Contributor

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
✅ GitHub MCP - Retrieved last 2 merged PRs
✅ Playwright - GitHub page title verified
✅ File Writing - Test file created successfully
✅ Bash Tool - File content verified

Status: PASS cc @Mossaka

AI generated by Smoke Copilot

@github-actions
Copy link
Contributor

Java Build Test Results

Project Compile Tests Status
gson 1/1 PASS
caffeine 1/1 PASS

Overall: PASS

All Java projects compiled and tested successfully through the AWF firewall with Maven proxy configuration.

AI generated by Build Test Java

@github-actions
Copy link
Contributor

.NET Build Test Results

Project Restore Build Run Status
hello-world PASS
json-parse PASS

Overall: PASS

All .NET projects built and ran successfully.

AI generated by Build Test .NET

@github-actions
Copy link
Contributor

Smoke Test Results

Last 2 Merged PRs:

Test Results:

  • ✅ GitHub MCP (list PRs)
  • ✅ Playwright (navigated to github.com, title verified)
  • ✅ File write (/tmp/gh-aw/agent/smoke-test-claude-22165363231.txt)
  • ✅ Bash tool (verified file contents)

Overall Status: PASS

AI generated by Smoke Claude

@github-actions
Copy link
Contributor

Rust Build Test Results

Project Build Tests Status
fd 1/1 PASS
zoxide 1/1 PASS

Overall: PASS

All Rust projects built and tested successfully.

AI generated by Build Test Rust

@github-actions
Copy link
Contributor

Node.js Build Test Results

Project Install Tests Status
clsx PASS ✅ PASS
execa PASS ✅ PASS
p-limit PASS ✅ PASS

Overall: ✅ PASS

All Node.js projects successfully installed dependencies and passed their test suites.

AI generated by Build Test Node.js

@github-actions
Copy link
Contributor

docs: add api-proxy image publishing details to release guide
feat(api-proxy): centralize port configuration in types.ts
GitHub MCP (merged PRs): ✅
safeinputs-gh pr list: ✅
Playwright title check: ✅
Tavily web search: ❌ (tool unavailable)
File write + bash cat: ✅
Discussion comment: ✅
Build (npm ci && npm run build): ✅
Overall: FAIL

AI generated by Smoke Codex

@github-actions
Copy link
Contributor

Chroot Version Comparison Test Results

Runtime Host Version Chroot Version Match?
Python 3.12.12 3.12.3 ❌ NO
Node.js v24.13.0 v20.20.0 ❌ NO
Go go1.22.12 go1.22.12 ✅ YES

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.

AI generated by Smoke Chroot

@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

💫 TO BE CONTINUED... Smoke Claude failed! Our hero faces unexpected challenges...

@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation...

@github-actions
Copy link
Contributor

C++ Build Test Results

Project CMake Build Status
fmt PASS
json PASS

Overall: PASS

All C++ projects built successfully with CMake and make.

AI generated by Build Test C++

@github-actions
Copy link
Contributor

Node.js Build Test Results

All Node.js projects tested successfully! ✅

Project Install Tests Status
clsx PASS ✅ PASS
execa PASS ✅ PASS
p-limit PASS ✅ PASS

Overall: ✅ PASS

All projects installed dependencies and passed their test suites without errors.

AI generated by Build Test Node.js

@github-actions
Copy link
Contributor

Deno Build Test Results

Project Tests Status
oak 1/1 ✅ PASS
std 1/1 ✅ PASS

Overall: ✅ PASS

All Deno tests completed successfully.

AI generated by Build Test Deno

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>
@Mossaka Mossaka force-pushed the feat/arm64-binary-support branch from b0c3679 to ab16216 Compare February 19, 2026 03:55
@github-actions
Copy link
Contributor

Bun Build Test Results

Project Install Tests Status
elysia 1/1 PASS
hono 1/1 PASS

Overall: PASS

All Bun projects installed and tested successfully.

AI generated by Build Test Bun

@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

🎬 THE ENDSmoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨

@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

@github-actions
Copy link
Contributor

github-actions bot commented Feb 19, 2026

Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded.

@github-actions
Copy link
Contributor

C++ Build Test Results

Project CMake Build Status
fmt PASS
json PASS

Overall: PASS

All C++ projects built successfully.

AI generated by Build Test C++

@github-actions
Copy link
Contributor

Deno Build Test Results

Project Tests Status
oak 1/1 ✅ PASS
std 1/1 ✅ PASS

Overall: ✅ PASS

All Deno tests completed successfully.

AI generated by Build Test Deno

@github-actions
Copy link
Contributor

Go Build Test Results

Project Download Tests Status
color 1/1 PASS
env 1/1 PASS
uuid 1/1 PASS

Overall: PASS

All Go projects successfully built and passed their tests.

AI generated by Build Test Go

@github-actions
Copy link
Contributor

Smoke Test Results

Last 2 Merged PRs:

Test Results:

  • ✅ GitHub MCP: Retrieved PR data successfully
  • ✅ Playwright: Navigated to github.com, title contains "GitHub"
  • ✅ File Write: Created /tmp/gh-aw/agent/smoke-test-copilot-22167849390.txt
  • ✅ Bash Tool: File verified with cat

Overall: PASS

cc: @Mossaka

AI generated by Smoke Copilot

@github-actions
Copy link
Contributor

Bun Build Test Results

Project Install Tests Status
elysia 1/1 PASS
hono 1/1 PASS

Overall: PASS

All Bun projects installed and tested successfully.

AI generated by Build Test Bun

@github-actions
Copy link
Contributor

Smoke Test Results

Last 2 merged PRs:

  • fix(ci): add actions:read to detection job permissions
  • docs: add api-proxy image publishing details to release guide

Test Results:

  • ✅ GitHub MCP: Retrieved PR data
  • ✅ Playwright: Navigated to github.com (title confirmed)
  • ✅ File Write: Created test file
  • ✅ Bash: Verified file contents

Status: PASS

AI generated by Smoke Claude

@github-actions
Copy link
Contributor

Build Test: Node.js - Results

All Node.js build tests passed successfully! ✅

Project Install Tests Status
clsx PASS PASS
execa PASS PASS
p-limit PASS PASS

Overall: PASS

All three projects installed dependencies and ran tests without errors.

AI generated by Build Test Node.js

@github-actions
Copy link
Contributor

PR titles: feat: add ARM64 binary support for awf CLI | Remove auto-generated CodeQL symlink
GitHub MCP merged-PR review: ✅
Safeinputs gh pr list: ✅
Playwright title check: ✅
Tavily web search: ❌ (tool unavailable)
File write: ✅
Bash cat verify: ✅
Discussion comment: ✅
Build (npm ci && npm run build): ✅
Overall: FAIL

AI generated by Smoke Codex

@github-actions
Copy link
Contributor

Java Build Test Results

Project Compile Tests Status
gson 1/1 PASS
caffeine 1/1 PASS

Overall: PASS

All Java projects compiled and tested successfully through the AWF firewall.

AI generated by Build Test Java

@github-actions
Copy link
Contributor

Chroot Version Comparison Test Results

Runtime Host Version Chroot Version Match?
Python Python 3.12.12 Python 3.12.3 ❌ NO
Node.js v24.13.0 v20.20.0 ❌ NO
Go go1.22.12 go1.22.12 ✅ YES

Overall Status: ❌ Tests Failed

Python and Node.js versions differ between host and chroot environments. Only Go versions match.

AI generated by Smoke Chroot

@github-actions
Copy link
Contributor

Rust Build Test Results

Project Build Tests Status
fd 1/1 PASS
zoxide 1/1 PASS

Overall: PASS

All Rust projects built and tested successfully.

AI generated by Build Test Rust

@Mossaka Mossaka merged commit a2f424b into main Feb 19, 2026
89 checks passed
@Mossaka Mossaka deleted the feat/arm64-binary-support branch February 19, 2026 04:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ARM64 container images not available for gh-aw firewall/MCP gateway

1 participant