Skip to content

feat(desktop): build the Windows ARM64 desktop app#4128

Merged
esengine merged 1 commit into
main-v2from
feat/desktop-windows-arm64
Jun 12, 2026
Merged

feat(desktop): build the Windows ARM64 desktop app#4128
esengine merged 1 commit into
main-v2from
feat/desktop-windows-arm64

Conversation

@esengine

Copy link
Copy Markdown
Owner

Adds a Windows on ARM64 build of the desktop app, for Snapdragon / Windows-ARM devices.

What changed

  • Release matrix — a windows/arm64 target on a native windows-11-arm runner. The build script already notes Wails can't cross-compile its CGO+WebView binary, so each arch builds on its own native runner; this just adds the missing one (GitHub's windows-11-arm runner is GA for public repos).
  • Manifest generator (desktop/cmd/sign) — added the windows-arm64 platform key and generalized the portable-.zip skip to any windows- arch, so the updater channel stays the per-arch -installer.exe.

Nothing else needed changing:

  • scripts/desktop-build.sh is already arch-parameterized (Reasonix-windows-arm64-installer.exe, etc.).
  • The updater's CurrentPlatform() is GOOS-GOARCH, so an arm64 build already resolves windows-arm64.
  • The codegraph dependency already ships codegraph-win32-arm64.zip.

Validation

  • cd desktop && go test ./cmd/sign passes, including new coverage that Reasonix-windows-arm64-installer.exe maps to windows-arm64 and the portable .zip is skipped.
  • Workflow YAML parses; matrix targets are darwin-universal, windows-amd64, windows-arm64, linux-amd64.

Note

The desktop build job only runs on a desktop-v* tag or a manual workflow_dispatch, so PR CI does not exercise the arm64 build — the first desktop release (or a canary dispatch) validates the runner toolchain (Wails + WebView2 + NSIS + cgo on ARM64). fail-fast: false is already set, so an arm64 build failure won't sink the other platforms; the manifest simply omits the arm64 key if its artifact is missing.

The CLI already supports Windows ARM64 today (reasonix@next@reasonix/cli-win32-arm64); this brings the desktop app to parity.

Add a windows/arm64 target to the desktop release matrix on a native
windows-11-arm runner — Wails can't cross-compile its CGO+WebView binary,
so each arch builds on its own runner. Teach the manifest generator the
windows-arm64 key and skip the portable .zip for any windows- arch, not
just amd64. The build script is already arch-parameterized and the
updater's CurrentPlatform already resolves windows-arm64, so nothing else
changes.

The arm64 build only runs on a desktop-v* tag or a manual dispatch, so PR
CI does not exercise it; the next desktop release validates the runner
toolchain. fail-fast is already off, so an arm64 failure won't sink the
other platforms.
@esengine esengine requested a review from SivanCola as a code owner June 12, 2026 05:53
@github-actions github-actions Bot added desktop Wails desktop app (desktop/**) updater Auto-update / installer / release packaging v2 Go rewrite (1.x) — main-v2 branch, active development labels Jun 12, 2026
@esengine esengine merged commit 7ebc413 into main-v2 Jun 12, 2026
14 checks passed
@esengine esengine deleted the feat/desktop-windows-arm64 branch June 12, 2026 05:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

desktop Wails desktop app (desktop/**) updater Auto-update / installer / release packaging v2 Go rewrite (1.x) — main-v2 branch, active development

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant