Skip to content

ci: macOS and Linux portable builds#40

Merged
ericckzhou merged 2 commits into
mainfrom
ci/multiplatform-builds
Jun 12, 2026
Merged

ci: macOS and Linux portable builds#40
ericckzhou merged 2 commits into
mainfrom
ci/multiplatform-builds

Conversation

@ericckzhou

Copy link
Copy Markdown
Owner

What

Adds macOS and Linux portable downloads alongside the existing Windows portable .exe.

  • electron-builder: new mac (.dmg + .zip, x64 + arm64) and linux (AppImage, x64) targets. Unsigned on all platforms, consistent with the current Windows stance. icon.png (512²) auto-converts to .icns.
  • release workflow: single Windows job → 3-OS matrix (windows/macos/ubuntu), each building on its native runner behind the same typecheck/test gates. A new publish job aggregates all artifacts into one Release with a single combined SHA256SUMS.txt.
  • README: per-platform download table, macOS Gatekeeper workaround, Linux AppImage/FUSE note, cross-platform checksum verification, updated build-from-source.

No app code changes — packaging/CI/docs only. No native deps (node:sqlite), so each runner just bundles the matching Electron binary; no per-platform native rebuild.

Verification

workflow_dispatch dry run on this branch (run) — all three matrix legs + the aggregate job green. Artifacts produced:

File Size
StarcallOS-0.2.0-portable-x64.exe 107M
StarcallOS-0.2.0-x64.dmg / -arm64.dmg 157M / 155M
StarcallOS-0.2.0-x64.zip / -arm64.zip 151M / 149M
StarcallOS-0.2.0-x86_64.AppImage 165M

The Release-publish step is correctly skipped on workflow_dispatch (tag-gated); a real v* tag will publish all of the above + SHA256SUMS.txt.

Notes / out of scope

  • macOS stays unsigned/un-notarized (needs a paid Apple cert) — documented Gatekeeper workaround instead.
  • Minor non-blocking annotation: actions/download-artifact@v5 runs on Node 20 (GitHub deprecation notice for a future date); latest major, nothing to bump yet.

Add mac (.dmg + .zip, x64/arm64) and linux (AppImage, x64) targets to
electron-builder alongside the existing Windows portable .exe. Convert the
release workflow to a 3-OS matrix that builds each platform on its native
runner, then aggregates all artifacts into one GitHub Release with a single
combined SHA256SUMS.txt. Document per-platform downloads, the macOS Gatekeeper
workaround, and Linux AppImage usage in the README.

No native deps (node:sqlite), so each runner just bundles the matching Electron
binary; no per-platform native rebuild.
@ericckzhou ericckzhou merged commit 1f52656 into main Jun 12, 2026
2 checks passed
@ericckzhou ericckzhou deleted the ci/multiplatform-builds branch June 12, 2026 06:04
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