Skip to content

Build Linux AppImage for both x64 and arm64 - #60

Merged
yoonwaiyan merged 1 commit into
mainfrom
fix/linux-appimage-multiarch
Jul 4, 2026
Merged

Build Linux AppImage for both x64 and arm64#60
yoonwaiyan merged 1 commit into
mainfrom
fix/linux-appimage-multiarch

Conversation

@yoonwaiyan

Copy link
Copy Markdown
Owner

Summary

  • Split the Linux release job into per-arch matrix entries (ubuntu-latest for x64, ubuntu-24.04-arm for arm64) so each AppImage is built natively on its target architecture.
  • electron-builder.yml now declares explicit x64/arm64 targets for the AppImage output, with arch in the artifact filename to avoid collisions.

Why

scripts/prepare-whisper.mjs compiles whisper.cpp for whatever host runs it and caches the binary; ffmpeg-static similarly installs a single host-matched binary. A single runner producing both architectures in one pass would silently bundle the wrong native binaries into one of the AppImages (e.g. an x64 whisper binary inside an arm64 AppImage), causing runtime failures like "Exec format error" on ARM64 Linux hosts.

Test plan

  • Trigger workflow_dispatch with platform: linux (or all) and confirm both Audist-<version>-x64.AppImage and Audist-<version>-arm64.AppImage are produced and uploaded as release assets
  • Run the x64 AppImage on an x86_64 Ubuntu host
  • Run the arm64 AppImage on an aarch64 host (e.g. the QEMU VM used during investigation)

🤖 Generated with Claude Code

The prepare-whisper.mjs script compiles whisper.cpp natively for the
build host's architecture, so a single runner can't produce a correct
multi-arch AppImage. Split the Linux release job into per-arch matrix
entries (ubuntu-latest for x64, ubuntu-24.04-arm for arm64) so each
AppImage bundles whisper/ffmpeg binaries matching its own architecture.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
@yoonwaiyan
yoonwaiyan merged commit d3eee8c into main Jul 4, 2026
6 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant