Conversation
- Add arm64 to Linux AppImage target architectures in package.json - Add dedicated linux-arm64 package job in release workflow using ubuntu-24.04-arm runner - Add linux-arm64 build job in CI workflow for PR validation - Release job now depends on both x64 and arm64 package jobs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds native Linux ARM64 (aarch64) build and packaging support to the SnCode Electron app by extending electron-builder targets and updating CI/release workflows to build on an ARM64 GitHub Actions runner.
Changes:
- Add
arm64to the Linux AppImage target architectures inpackage.json. - Add
package-linux-arm64to the release workflow and gate release publishing on both x64 + arm64 packaging. - Add
build-linux-arm64to CI to validate ARM64 builds on pull requests.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| package.json | Expands linux AppImage target arches to include arm64. |
| .github/workflows/release.yml | Adds an ARM64 packaging job and makes release depend on both packaging jobs. |
| .github/workflows/ci.yml | Adds an ARM64 build job running on an ARM runner. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| { | ||
| "target": "AppImage", | ||
| "arch": [ | ||
| "x64" | ||
| "x64", | ||
| "arm64" | ||
| ] |
There was a problem hiding this comment.
Adding arm64 to the Linux build.linux.target[].arch list means the existing release.yml package job on ubuntu-latest (x64) will likely try to build both x64 and arm64 AppImages when it runs npx electron-builder without an explicit arch. That can break the Linux packaging job (cross-arch AppImage builds often fail on x64) and/or produce duplicate arm64 artifacts alongside the dedicated package-linux-arm64 job. Consider restricting the x64 Linux packaging run to --x64 (or removing arch from package.json and selecting the arch only via CI/job flags).
The dedicated package-linux-arm64 job passes --linux --arm64 explicitly, so keeping arm64 in package.json would cause the x64 ubuntu-latest job to attempt cross-arch AppImage builds that would fail. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
arm64to the Linux AppImage target architectures inpackage.json, alongside the existingx64package-linux-arm64job in the release workflow using GitHub'subuntu-24.04-armrunner for native ARM64 buildsbuild-linux-arm64CI job so ARM64 builds are validated on pull requestsThis enables SnCode to run natively on ARM64 Linux devices (e.g. NVIDIA Jetson, Raspberry Pi, Ampere servers, AWS Graviton).
Test plan
build-linux-arm64job onubuntu-24.04-armkeytar(OS keychain) works correctly on ARM64🤖 Generated with Claude Code