mirror of
https://github.com/Novaloop-AG/healthchat-web.git
synced 2026-11-07 23:18:21 +00:00
ci: link desktop installers instead of attaching them
This commit is contained in:
@@ -19,16 +19,19 @@ Releases are driven by git tags of the form `healthchat-v<semver>` pushed to
|
||||
`:<sha>`, so you can deploy them deliberately by overriding the image ref (see
|
||||
"Deploying the release"), but they can never become production by accident.
|
||||
- `.github/workflows/build-healthchat-desktop.yaml` (desktop) — builds the Electron
|
||||
app for macOS (universal, signed+notarised) and Windows (x64/arm64, signed), and
|
||||
attaches the installers (.dmg/.zip/.exe/.msi) to the **same** GitHub Release. The two
|
||||
workflows create-if-missing then upload, so they race safely. (Linux is intentionally
|
||||
not built — the upstream Linux reusable pulls a build-env Docker image keyed by commit
|
||||
SHA that only exists in the upstream element-hq registry, so it cannot succeed in this
|
||||
fork.) The `release` job also **stages** the Squirrel update feed and public installers and
|
||||
attaches them to the Release as `healthchat-desktop-feed-<version>.tar.gz` — but it
|
||||
**does not publish them**. See "Deploying the desktop release" below.
|
||||
app for macOS (universal, signed+notarised) and Windows (x64/arm64, signed) and
|
||||
publishes to the **same** GitHub Release as the web workflow (both create-if-missing,
|
||||
so they race safely). (Linux is intentionally not built — the upstream Linux reusable
|
||||
pulls a build-env Docker image keyed by commit SHA that only exists in the upstream
|
||||
element-hq registry, so it cannot succeed in this fork.) The `release` job **stages**
|
||||
the Squirrel update feed and public installers and attaches them to the Release as
|
||||
split `healthchat-desktop-feed-<version>.tar.gz.part*` assets (the compressed feed
|
||||
exceeds GitHub's 2 GiB per-asset cap) — but it **does not publish them**. Installer
|
||||
binaries are not attached individually; the Release notes get a "## Downloads"
|
||||
section linking their public URLs on packages.healthchat.ch, which resolve once the
|
||||
version is deployed. See "Deploying the desktop release" below.
|
||||
- `.github/workflows/deploy-healthchat-desktop.yaml` (desktop deploy) — **manual
|
||||
dispatch only.** Downloads that tarball and mirrors it to
|
||||
dispatch only.** Downloads and reassembles those feed parts and mirrors the feed to
|
||||
`https://packages.healthchat.ch/desktop/` over FTPS (the private GitHub Release can
|
||||
serve neither end users nor the auto-updater), plus the legacy
|
||||
`https://healthchat.ch/packages/desktop/` path while clients built <= 1.5.0 are still
|
||||
@@ -37,8 +40,8 @@ Releases are driven by git tags of the form `healthchat-v<semver>` pushed to
|
||||
the two caveats (first install is manual; Windows auto-update needs the Setup.exe path,
|
||||
not the .msi).
|
||||
|
||||
Publish target: **ghcr.io Docker image + GitHub Release (web bundle + desktop
|
||||
installers).** No npm, no mobile fan-out.
|
||||
Publish target: **ghcr.io Docker image + GitHub Release (web bundle + desktop feed
|
||||
parts, with installer download links).** No npm, no mobile fan-out.
|
||||
|
||||
## Release ≠ deploy
|
||||
|
||||
@@ -186,7 +189,8 @@ run or `:latest` had not moved yet.
|
||||
|
||||
## Deploying the desktop release
|
||||
|
||||
The desktop build attaches `healthchat-desktop-feed-<version>.tar.gz` to the Release but
|
||||
The desktop build attaches the split `healthchat-desktop-feed-<version>.tar.gz.part*`
|
||||
assets to the Release but
|
||||
leaves `https://packages.healthchat.ch/desktop/` untouched. Until you run this, installed
|
||||
apps keep whatever version they have and the public download links still serve the old
|
||||
installers.
|
||||
@@ -319,9 +323,10 @@ warning. Prefer fixing the changelog over relying on the fallback.
|
||||
For an `-rc`/`-hotfix`/`-dryrun` tag the opposite is expected: `:latest` must
|
||||
be **unchanged**.
|
||||
- [ ] The desktop workflow run ("Build HealthChat Desktop") is green and the
|
||||
GitHub Release has the desktop installers attached (.dmg, *-mac.zip, *.msi,
|
||||
"* Setup*.exe") **plus** `healthchat-desktop-feed-<version>.tar.gz`. Without that
|
||||
tarball the desktop deploy has nothing to publish.
|
||||
GitHub Release carries the split feed assets
|
||||
`healthchat-desktop-feed-<version>.tar.gz.part*` plus a "## Downloads" section
|
||||
in its notes linking the public installers. Without those parts the desktop
|
||||
deploy has nothing to publish.
|
||||
- [ ] Confirm the live feed is still on the **previous** version — releasing must not have
|
||||
moved it. `curl -fsS https://packages.healthchat.ch/desktop/update/macos/releases.json`
|
||||
- [ ] Smoke-check signing before shipping to users: macOS `spctl -a -vvv -t install <app>`
|
||||
|
||||
Reference in New Issue
Block a user