2.4 KiB
2.4 KiB
Desktop release & auto-update
The desktop app ships an in-app auto-updater (update-electron-app). The code
is wired; making it go live needs infrastructure only the team can provision
(an Apple Developer certificate, notarization, and CI secrets). This is the
checklist.
What already works (in this repo)
update-electron-appis wired insrc/main.ts(initAutoUpdates()), guarded
byapp.isPackagedso it is a no-op innpm run dev. It reads the GitHub
Releases feed directly via the Releases API — nolatest-mac.ymlfiles needed.forge.config.ts > publishersuses@electron-forge/publisher-github, pointed
at the GitHub Releases feed (draft releases by default)..github/workflows/frontend-release.ymlbuilds on adesktop-v*tag and runs
npm run publish(electron-forge publish), which makes the installers and
uploads them to a GitHub Release.
What the team must add (auto-update is inert until these exist)
- Apple Developer cert + notarization (macOS hard requirement — an unsigned
app cannot auto-update):- Enroll in the Apple Developer Program.
- Export a "Developer ID Application" certificate as a
.p12. - Signing is already gated in
forge.config.tson the env vars below:
osxSignactivates whenCSC_LINKis set,osxNotarizewhenAPPLE_ID
is set. No config edit needed — just provide the secrets.
- GitHub repository secrets (Settings → Secrets → Actions):
CSC_LINK— base64 of the.p12certificate.CSC_KEY_PASSWORD— the.p12password.APPLE_ID,APPLE_APP_SPECIFIC_PASSWORD,APPLE_TEAM_ID— for notarization.GITHUB_TOKENis provided automatically; the workflow already grants
contents: writeto publish the Release.
- (Optional) Windows / Linux — the
forge.config.tsmakers already include
NSIS (Windows, viamakers/maker-nsis.ts), deb, and rpm. To publish them, add
the matching matrix runners tofrontend-release.yml; Windows code-signing
needs its own certificate (still a follow-up, see issue #401).
Cutting a release
# bump frontend/package.json "version", commit, then:
git tag desktop-v0.1.0
git push origin desktop-v0.1.0
The workflow publishes a GitHub Release with the installers. Installed apps check
the Releases feed on launch (update-electron-app) and prompt to restart when an
update is downloaded.