Publish updates to the Gitea package registry, and build the installer on macOS

The dev machine is now a laptop, so the release path had to stop assuming Windows
and a reachable network share.

- tools/build-win.cjs: build the Windows x64 installer from macOS or Windows.
  electron-builder fetches its own mac wine build, so the only real trap is
  architecture: a plain `electron-builder --win` on Apple Silicon silently
  produces an arm64 installer the stage PC cannot run. This pins --x64 and
  strips the CSC_* signing vars (an EMPTY WIN_CSC_LINK aborts the build).
- tools/publish-update.cjs: an http(s) destination now uploads to a Gitea
  generic package registry. Not a Gitea release: this server caps release
  attachments at 100 MB and disallows .exe, while the package registry takes the
  750 MB installer and serves it anonymously — which the updater requires, since
  it sends no credentials. Installer first, manifest last, so a TV checking
  mid-publish never sees a manifest naming a file that is not there yet.
- tools/release.cjs: bump, build and publish in one command.
- server.js: honour "check for updates automatically when the app starts". The
  setting was stored but never acted on. It checks only — installing restarts
  the app, which must stay a deliberate tap.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-24 13:17:55 -04:00
co-authored by Claude Opus 5
parent 0db5e9b07d
commit 838a87dbf3
6 changed files with 422 additions and 100 deletions
+5 -2
View File
@@ -8,8 +8,8 @@
"start": "node server.js",
"wordnet:fetch": "node tools/fetch-greek-wordnet.js",
"build": "electron-builder",
"build:win": "electron-builder --win",
"release": "electron-builder --win && node tools/publish-update.cjs",
"build:win": "node tools/build-win.cjs",
"release": "node tools/release.cjs",
"publish-update": "node tools/publish-update.cjs",
"build:win:dir": "electron-builder --win --dir",
"build:installer": "build-installer.bat",
@@ -27,6 +27,9 @@
],
"author": "Bible App Team",
"license": "MIT",
"bibleApp": {
"updateTarget": "http://chronicles-ab.waterschurch.org:3000/api/packages/christian/generic/bible-app/latest"
},
"build": {
"appId": "com.bibleapp.desktop",
"productName": "Bible App",