Skip to content

feat(code): add Linux AppImage build target#2130

Draft
gantoine wants to merge 1 commit into
mainfrom
feat/linux-appimage-release
Draft

feat(code): add Linux AppImage build target#2130
gantoine wants to merge 1 commit into
mainfrom
feat/linux-appimage-release

Conversation

@gantoine
Copy link
Copy Markdown
Member

Summary

  • Adds @reforged/maker-appimage and registers it in forge.config.ts so Forge produces x64 + arm64 Linux AppImages alongside the existing macOS DMG/ZIP and Windows installer.
  • Adds a publish-linux matrix job (ubuntu-latest + ubuntu-24.04-arm) to code-release.yml that installs the AppImage tooling (squashfs-tools, zsync, libfuse2t64) and runs electron-forge publish. finalize-release now depends on this job too.
  • Adds a pnpm --filter code make:linux script that builds the AppImage from macOS via Docker (tar-streamed source, container-side node_modules) for local verification, since electron-forge can't natively cross-build AppImages from darwin.
  • Drive-by: removes a duplicate const { isOnline } = useConnectivity() in SessionView.tsx left behind by a merge collision between fix(sessions): preserve prompt when sending while offline #1971 and fix(sessions): disable message send when offline #2121 — was failing typecheck on main.

Test plan

  • Push a throwaway v0.0.0-linuxtest1 tag and verify publish-linux produces both x64 and arm64 AppImages in the draft GitHub release
  • Confirm finalize-release waits for all three platform jobs before un-drafting
  • Locally: pnpm --filter code make:linux produces an AppImage under apps/code/out/make/ (requires Docker Desktop ≥ 8 GB memory)
  • Launch the produced AppImage on a Linux box and confirm the app boots
  • Verify existing macOS DMG and Windows installer release flows still publish (no changes to those job definitions, but matrix needs was extended)

Notes

  • Linux artifacts are unsigned (no gpg signing wired up); flag for follow-up if signed Linux builds are needed.
  • libfuse2t64 is the Ubuntu 24.04 package name; if ubuntu-latest is bumped past 24.04 in the future, that line may need adjusting.

🤖 Generated with Claude Code

Adds @reforged/maker-appimage so Forge produces x64 and arm64 AppImages
alongside the existing macOS/Windows artifacts. The release workflow gains
a publish-linux matrix job (ubuntu-latest + ubuntu-24.04-arm) which
installs the AppImage tooling (squashfs-tools, zsync, libfuse2t64) before
running electron-forge publish, and finalize-release now depends on it.

Also includes a make:linux script that builds the AppImage from macOS via
Docker for local verification, since electron-forge can't natively
cross-build AppImages from darwin.

Drive-by fix: remove a duplicate `const { isOnline } = useConnectivity()`
in SessionView.tsx that came in via a merge collision between #1971 and
#2121 and was failing typecheck on main.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant