Linux releases missing AppImage despite electron-builder config targeting it
name: Missing AppImage in Linux releases despite electron-builder config about: The electron-builder config and CI both target AppImage, but releases only ship .deb title: Linux releases missing AppImage despite electron-builder config targeting it labels: ['bug', 'package', 'linux']
Summary
electron/build.js configures linux.target = ["AppImage", "deb"], and the CI workflow .github/workflows/electron-linux-ubuntu22.yml builds, verifies, and uploads both .deb and .AppImage to presenton-export. Yet every electron-vX.X.X-beta release on this repo only contains .deb + .dmg — no .AppImage has ever shipped in a release.
Evidence
1. electron-builder config targets AppImage
electron/build.js:
linux: {
artifactName: "Presenton-${version}.${ext}",
target: ["AppImage", "deb"],
icon: "build/icons",
category: "Office",
},2. CI workflow builds and verifies both
.github/workflows/electron-linux-ubuntu22.yml:
- Build step:
npm run build:all(produces both.deband.AppImage) - Verification:
test -n "$(find electron/dist -maxdepth 1 -type f -name '*.AppImage' -print -quit)" - Artifact upload includes both:
path: | electron/dist/*.deb electron/dist/*.AppImage - Published to
presenton-exporttest repo with both file types
3. Every release is missing the AppImage
Recent electron-* releases (via API):
electron-v0.9.8-beta:Presenton-0.9.8-beta.deb,Presenton-0.9.8-beta.dmg— no AppImageelectron-v0.9.7-beta:Presenton-0.9.7-beta.deb,Presenton-0.9.7-beta.dmg— no AppImageelectron-v0.9.5-beta:Presenton-0.9.5-beta.deb,Presenton-0.9.5-beta.dmg— no AppImage- ...same for every prior
electron-*release
4. R2 mirror explicitly excludes AppImage
.github/workflows/sync-releaes-to-r2.yml downloads release assets with:
gh release download ... --pattern '*.deb' --pattern '*.dmg' --pattern '*.exe'No *.AppImage pattern — even if an AppImage were in the release, it wouldn't reach the R2 distribution mirror.
Impact
- Users on Fedora, RHEL, Arch, openSUSE, Alpine, and other non-.deb distros have no native installable package.
- The only Linux options are
.deb(apt-only), Docker, or building from source. - AppImage was clearly intended (config + CI both target it), but it never reaches end users.
- Issue #762 ("Add RPM support") was closed with the maintainer asking "will appimage solve the issue?" — this is that fix.
Likely causes
One or both of:
A. Release creation is manual (or semi-manual) and the AppImage is not being uploaded.
The release creation (gh release create / gh release upload) on presenton/presenton appears to be done outside any automation — possibly manually or via a script not in this repo. The person creating the release may only be uploading .deb + .dmg explicitly, leaving the AppImage behind.
B. The AppImage build is failing silently in the pipeline that creates the actual release.
The CI test workflow verifies the AppImage exists, but the build environment for the actual release may differ (different runner, different step ordering, different npm target), causing the AppImage build to fail while .deb succeeds.
Suggested fixes
Fix 1 (minimal, high-value): Include *.AppImage in R2 sync
Update .github/workflows/sync-releaes-to-r2.yml:
- gh release download "${{ github.event.release.tag_name }}" --dir assets --pattern '*.deb' --pattern '*.dmg' --pattern '*.exe'
+ gh release download "${{ github.event.release.tag_name }}" --dir assets --pattern '*.deb' --pattern '*.dmg' --pattern '*.exe' --pattern '*.AppImage'This ensures that if/when an AppImage reaches the release, it gets mirrored to R2.
Fix 2 (root cause): Automate release creation to include all electron-builder outputs
Add a workflow (or extend an existing one) that automatically uploads all artifacts from electron/dist/ to the release when a tag matching electron-* is pushed. For example:
on:
push:
tags:
- 'electron-*'With a step that does:
gh release upload "${{ github.ref_name }}" electron/dist/*This removes the manual step and guarantees the AppImage (and any future targets) are included every time.
Fix 3 (validation): Verify AppImage in the release workflow
Add a verification step after release upload that confirms *.AppImage exists in the release assets, similar to the CI test workflow. Fail the release if it's missing.
References
electron/build.jslines configuringlinux.target.github/workflows/electron-linux-ubuntu22.yml— CI that proves AppImage builds work.github/workflows/sync-releaes-to-r2.yml— R2 mirror that skips AppImage- Issue #762 — maintainer asked "will appimage solve the issue?" when closing RPM request
Source: presenton/presenton