mirror of
https://github.com/Novaloop-AG/healthchat-web.git
synced 2026-11-02 12:07:34 +00:00
chore: move desktop packages to packages.healthchat.ch
This commit is contained in:
@@ -11,7 +11,7 @@ name: Build HealthChat Desktop
|
||||
#
|
||||
# Notes:
|
||||
# - This workflow RELEASES but does not DEPLOY. It attaches the installers and a staged update-feed
|
||||
# tarball to the GitHub Release; the live auto-update feed at healthchat.ch/packages/desktop/ is
|
||||
# tarball to the GitHub Release; the live auto-update feed at packages.healthchat.ch/desktop/ is
|
||||
# only touched by the manually dispatched deploy-healthchat-desktop.yaml. So cutting a tag never
|
||||
# pushes an update to already-installed apps until a human decides to ship it.
|
||||
# - The reusable build workflows are pointed at THIS fork (repository/ref inputs) so the Electron
|
||||
@@ -195,10 +195,10 @@ jobs:
|
||||
targets: "dmg zip"
|
||||
# Generates dist/releases.json (the Squirrel.Mac feed manifest). The reusable appends
|
||||
# `/update/macos/<zip>` to this, so the in-manifest URL becomes
|
||||
# https://healthchat.ch/packages/desktop/update/macos/<zip>, matching where the
|
||||
# https://packages.healthchat.ch/desktop/update/macos/<zip>, matching where the
|
||||
# `release` job publishes the feed. Keep in sync with update_base_url in
|
||||
# element.io/healthchat/config.json (.../packages/desktop/update/).
|
||||
base-url: https://healthchat.ch/packages/desktop
|
||||
# element.io/healthchat/config.json (.../desktop/update/).
|
||||
base-url: https://packages.healthchat.ch/desktop
|
||||
|
||||
windows:
|
||||
name: Windows ${{ matrix.arch }}
|
||||
@@ -273,7 +273,7 @@ jobs:
|
||||
gh release upload "$TAG" release-files/* --clobber
|
||||
|
||||
# The GitHub Release above is private (internal fork), so it can't serve end users or the
|
||||
# Squirrel auto-updater. Those are served from healthchat.ch/packages/desktop/, which is
|
||||
# Squirrel auto-updater. Those are served from packages.healthchat.ch/desktop/, which is
|
||||
# published by the SEPARATE, MANUALLY DISPATCHED "Deploy HealthChat Desktop" workflow
|
||||
# (deploy-healthchat-desktop.yaml) — releasing never touches the live update feed.
|
||||
# This job only *stages* that feed and attaches it to the Release as a tarball, so the
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
name: Deploy HealthChat Desktop
|
||||
|
||||
# Publishes an already-released desktop build to healthchat.ch/packages/desktop/ over FTPS.
|
||||
# Publishes an already-released desktop build to packages.healthchat.ch/desktop/ over FTPS.
|
||||
#
|
||||
# This is the DEPLOY half of the desktop pipeline, deliberately split from the release half
|
||||
# (build-healthchat-desktop.yaml). Cutting a `healthchat-v*` tag builds, signs and attaches the
|
||||
# installers plus a staged update-feed tarball to the GitHub Release, but never touches the live
|
||||
# feed. Nothing reaches installed apps until this workflow is dispatched by hand.
|
||||
#
|
||||
# Why that split matters: the feed under .../packages/desktop/update/ is what the Squirrel
|
||||
# Why that split matters: the feed under .../desktop/update/ is what the Squirrel
|
||||
# auto-updater polls. Writing to it pushes an update to every installed client, so it is a
|
||||
# deployment, not a publication step — the same reason the ansible playbook's deploy is a manual
|
||||
# dispatch rather than a release trigger.
|
||||
@@ -38,7 +38,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: Publish update feed to healthchat.ch
|
||||
name: Publish update feed to packages.healthchat.ch
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
@@ -126,11 +126,21 @@ jobs:
|
||||
# *.nupkg are preserved (Squirrel.Windows delta history) and only the staged files
|
||||
# are written/overwritten. If the host's FTPS cert is untrusted, set
|
||||
# ssl:verify-certificate to no.
|
||||
#
|
||||
# Dual-publish during the URL migration: /public_html/packages is the docroot of
|
||||
# packages.healthchat.ch (the canonical feed URL since builds > 1.5.0), while
|
||||
# /public_html/healthchat.ch/packages/desktop serves the legacy
|
||||
# healthchat.ch/packages/desktop URL that clients built <= 1.5.0 still poll —
|
||||
# they only learn the new URL by installing an update delivered over the old
|
||||
# feed. Drop the legacy mirror (and its verify checks below) once the installed
|
||||
# base is on a build carrying the new update_base_url.
|
||||
lftp -u "$FTP_USERNAME" --env-password "$FTP_SERVER" <<LFTP
|
||||
set cmd:fail-exit true
|
||||
set ftp:ssl-force true
|
||||
set ftp:ssl-protect-data true
|
||||
set ssl:verify-certificate true
|
||||
mkdir -pf /public_html/packages/desktop
|
||||
mirror -R $MIRROR_OPTS feed/ /public_html/packages/desktop/
|
||||
mkdir -pf /public_html/healthchat.ch/packages/desktop
|
||||
mirror -R $MIRROR_OPTS feed/ /public_html/healthchat.ch/packages/desktop/
|
||||
bye
|
||||
@@ -140,13 +150,19 @@ jobs:
|
||||
if: ${{ !inputs.dry_run }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
base="https://healthchat.ch/packages/desktop"
|
||||
base="https://packages.healthchat.ch/desktop"
|
||||
# The legacy healthchat.ch URLs keep clients built <= 1.5.0 updating; drop them
|
||||
# together with the legacy mirror above once the installed base has migrated.
|
||||
legacy="https://healthchat.ch/packages/desktop"
|
||||
fail=0
|
||||
for url in "$base/update/macos/releases.json" \
|
||||
"$base/update/win32/x64/RELEASES" \
|
||||
"$base/update/win32/arm64/RELEASES" \
|
||||
"$base/install/macos/HealthChat.dmg" \
|
||||
"$base/install/win32/x64/HealthChat-Setup.exe"; do
|
||||
"$base/install/win32/x64/HealthChat-Setup.exe" \
|
||||
"$legacy/update/macos/releases.json" \
|
||||
"$legacy/update/win32/x64/RELEASES" \
|
||||
"$legacy/update/win32/arm64/RELEASES"; do
|
||||
code=$(curl -fsS -o /dev/null -w '%{http_code}' -I "$url" 2>/dev/null || echo "000")
|
||||
if [[ "$code" == "200" ]]; then echo "ok $code $url"; else echo "FAIL $code $url"; fail=1; fi
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user