Point desktop updates at the Gitea release feed
The updater now resolves the newest non-draft desktop-v* release through the Gitea API at check time (J621_UPDATE_REPO, lowercase because the API path is case-sensitive), picks the platform's latest*.yml asset and uses that release as a generic electron-updater feed; J621_UPDATE_URL still overrides everything. Verified against the live API: release picked, yml fetched, artifact HEAD 200. electron-builder's publish.url is now metadata only (still needed so the build emits latest*.yml). Docs updated: CD release assets are the feed, the website /desktop/ feed only matters for installs before 0.1.2.
This commit is contained in:
+19
-8
@@ -49,7 +49,8 @@ npm run dist:all
|
||||
|
||||
`deploy/build_desktop.sh` wraps the same commands, installs dependencies on
|
||||
first run and prints sizes plus SHA-256 sums for release notes. Nothing is
|
||||
published by it; `deploy/push_desktop.sh` is the one that feeds auto-updates.
|
||||
published by it; the CD workflow attaches the artifacts to the Gitea release,
|
||||
which is also the update feed.
|
||||
|
||||
The Arch package can be installed and removed with pacman:
|
||||
|
||||
@@ -68,19 +69,29 @@ will warn, and it has not been smoke-tested on real Windows.
|
||||
|
||||
The app checks only when asked (**J621 → Check for updates…** in the menu):
|
||||
Linux packages install through pacman/dpkg, which needs administrator rights,
|
||||
and the Windows build is unsigned, so nothing installs silently. The check
|
||||
reads `latest-linux.yml` / `latest.yml` from the feed configured in
|
||||
`electron-builder.yml` (`publish.url`, baked into `app-update.yml`); set
|
||||
`J621_UPDATE_URL` to point a build at another feed (the smoke test uses this).
|
||||
and the Windows build is unsigned, so nothing installs silently.
|
||||
|
||||
The check resolves the feed itself: it asks the Gitea API for the newest
|
||||
non-draft `desktop-v*` release (`J621_UPDATE_REPO`, default
|
||||
`https://gitea.rainbow-herring.ts.net/jakebreath/j621` — lowercase on purpose,
|
||||
the API path is case-sensitive), picks the `latest-linux.yml` / `latest.yml`
|
||||
asset for the platform and uses that release as an electron-updater generic
|
||||
feed. The baked `publish.url` in `electron-builder.yml` is metadata only.
|
||||
`J621_UPDATE_URL` overrides the whole lookup (the smoke test uses this).
|
||||
|
||||
Publishing a release:
|
||||
|
||||
1. Bump `version` in `desktop/package.json` — that is what the updater compares.
|
||||
2. `./deploy/push_desktop.sh --win` builds deb/pacman/NSIS and copies the
|
||||
artifacts plus both channel files into `deploy/data/desktop/`, which the
|
||||
frontend nginx serves read-only at `/desktop/`.
|
||||
2. Run the manual CD workflow, which builds the packages and attaches them
|
||||
plus both channel files to the Gitea release `desktop-v<version>`.
|
||||
`./deploy/push_desktop.sh --win` does the same build locally (and can also
|
||||
copy the files to the website feed, which is optional now).
|
||||
3. Existing installs find the new version on their next manual check.
|
||||
|
||||
Note for the 0.1.1 → 0.1.2 step: 0.1.1 only knows the old `/desktop/` feed, so
|
||||
publish 0.1.2 there once (`./deploy/push_desktop.sh --no-build`, or install it
|
||||
manually). From 0.1.2 on, updates come from Gitea.
|
||||
|
||||
`package-type` in the app resources tells electron-updater whether to run
|
||||
`pacman -U` or `dpkg -i` (both via pkexec/sudo); the per-user NSIS install
|
||||
updates without elevation.
|
||||
|
||||
Reference in New Issue
Block a user