mirror of
https://github.com/Novaloop-AG/healthchat-web.git
synced 2026-10-31 08:15:07 +00:00
chore(release): HealthChat 1.1.2
Remove the Linux desktop build from the release pipeline. It could never succeed in this fork: the upstream Linux reusable pulls a build-env Docker image keyed by the building commit's SHA from the upstream element-hq registry, where the fork's SHA does not exist, so every tagged build failed with `manifest unknown`. Desktop releases now ship macOS and Windows only. - Drop the linux job + its release artifacts from build-healthchat-desktop.yaml - Bump apps/desktop/package.json to 1.1.2 - Update releasing-healthchat skill + desktop README docs
This commit is contained in:
@@ -13,17 +13,19 @@ Releases are driven by git tags of the form `healthchat-v<semver>` pushed to
|
|||||||
`:<sha>`, and creates a GitHub Release whose body is the matching section of
|
`:<sha>`, and creates a GitHub Release whose body is the matching section of
|
||||||
`HEALTHCHAT_CHANGES.md`.
|
`HEALTHCHAT_CHANGES.md`.
|
||||||
- `.github/workflows/build-healthchat-desktop.yaml` (desktop) — builds the Electron
|
- `.github/workflows/build-healthchat-desktop.yaml` (desktop) — builds the Electron
|
||||||
app for Linux (amd64/arm64), macOS (universal, signed+notarised) and Windows
|
app for macOS (universal, signed+notarised) and Windows (x64/arm64, signed), and
|
||||||
(x64/arm64, signed), and attaches the installers (.dmg/.zip/.exe/.msi/.deb/.tar.gz)
|
attaches the installers (.dmg/.zip/.exe/.msi) to the **same** GitHub Release. The two
|
||||||
to the **same** GitHub Release. The two workflows create-if-missing then upload, so
|
workflows create-if-missing then upload, so they race safely. (Linux is intentionally
|
||||||
they race safely.
|
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.)
|
||||||
|
|
||||||
Publish target: **ghcr.io Docker image + GitHub Release (web bundle + desktop
|
Publish target: **ghcr.io Docker image + GitHub Release (web bundle + desktop
|
||||||
installers).** No npm, no mobile fan-out.
|
installers).** No npm, no mobile fan-out.
|
||||||
|
|
||||||
The desktop app version is taken from `apps/desktop/package.json` (the per-job
|
The desktop app version is taken from `apps/desktop/package.json` (the per-job
|
||||||
`version` input cannot set it — Windows squirrel mangles it into a nightly string,
|
`version` input cannot set it — Windows squirrel mangles it into a nightly string,
|
||||||
and on macOS/Linux it only feeds the update manifest). So `apps/desktop/package.json`
|
and on macOS it only feeds the update manifest). So `apps/desktop/package.json`
|
||||||
**must be bumped to the release version in the release commit** to keep the About
|
**must be bumped to the release version in the release commit** to keep the About
|
||||||
dialog and installer filenames matching the tag. This is no longer optional: the
|
dialog and installer filenames matching the tag. This is no longer optional: the
|
||||||
desktop workflow's "Assert desktop app version matches release" step fails the build
|
desktop workflow's "Assert desktop app version matches release" step fails the build
|
||||||
@@ -162,7 +164,7 @@ warning. Prefer fixing the changelog over relying on the fallback.
|
|||||||
(`docker buildx imagetools inspect ghcr.io/<owner>/healthchat-web:stable`).
|
(`docker buildx imagetools inspect ghcr.io/<owner>/healthchat-web:stable`).
|
||||||
- [ ] The desktop workflow run ("Build HealthChat Desktop") is green and the
|
- [ ] The desktop workflow run ("Build HealthChat Desktop") is green and the
|
||||||
GitHub Release has the desktop installers attached (.dmg, *-mac.zip, *.msi,
|
GitHub Release has the desktop installers attached (.dmg, *-mac.zip, *.msi,
|
||||||
"* Setup*.exe", *.deb, *.tar.gz).
|
"* Setup*.exe").
|
||||||
- [ ] Smoke-check signing: macOS `spctl -a -vvv -t install <app>` is accepted;
|
- [ ] Smoke-check signing: macOS `spctl -a -vvv -t install <app>` is accepted;
|
||||||
Windows installer shows a valid publisher (no SmartScreen block).
|
Windows installer shows a valid publisher (no SmartScreen block).
|
||||||
|
|
||||||
@@ -219,6 +221,7 @@ conflict on rebase, re-apply the HealthChat changes rather than blindly taking
|
|||||||
either side:
|
either side:
|
||||||
|
|
||||||
- `.github/workflows/build_desktop_prepare.yaml`
|
- `.github/workflows/build_desktop_prepare.yaml`
|
||||||
- `.github/workflows/build_desktop_linux.yaml`
|
- `.github/workflows/build_desktop_linux.yaml` (still in the tree, but no longer
|
||||||
|
invoked by `build-healthchat-desktop.yaml` — the fork doesn't build Linux)
|
||||||
- `.github/workflows/build_desktop_macos.yaml`
|
- `.github/workflows/build_desktop_macos.yaml`
|
||||||
- `.github/workflows/build_desktop_windows.yaml`
|
- `.github/workflows/build_desktop_windows.yaml`
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
name: Build HealthChat Desktop
|
name: Build HealthChat Desktop
|
||||||
|
|
||||||
# Builds the HealthChat desktop (Electron) app for Linux, macOS and Windows: the fork's
|
# Builds the HealthChat desktop (Electron) app for macOS and Windows: the fork's
|
||||||
# element-web webapp with the HealthChat plugin (healthchat-module.js + healthchat-elements.js)
|
# element-web webapp with the HealthChat plugin (healthchat-module.js + healthchat-elements.js)
|
||||||
# injected, packaged via the element-desktop build pipeline and published to the GitHub Release.
|
# injected, packaged via the element-desktop build pipeline and published to the GitHub Release.
|
||||||
#
|
#
|
||||||
# This is the desktop counterpart of build-healthchat.yaml (web). On a `healthchat-v*` tag it
|
# This is the desktop counterpart of build-healthchat.yaml (web). On a `healthchat-v*` tag it
|
||||||
# runs alongside the web build; it first builds the element-plugin from healthchat-workspace,
|
# runs alongside the web build; it first builds the element-plugin from healthchat-workspace,
|
||||||
# builds the fork webapp with the plugin injected, then feeds it into build_desktop_prepare.yaml
|
# builds the fork webapp with the plugin injected, then feeds it into build_desktop_prepare.yaml
|
||||||
# (via `webapp-artifact`) and the per-platform build_desktop_{linux,macos,windows}.yaml reusables.
|
# (via `webapp-artifact`) and the per-platform build_desktop_{macos,windows}.yaml reusables.
|
||||||
#
|
#
|
||||||
# Notes:
|
# Notes:
|
||||||
# - The reusable build workflows are pointed at THIS fork (repository/ref inputs) so the Electron
|
# - The reusable build workflows are pointed at THIS fork (repository/ref inputs) so the Electron
|
||||||
@@ -18,7 +18,7 @@ name: Build HealthChat Desktop
|
|||||||
# GitHub environments (secrets/vars) to be configured. Without them the builds still run but
|
# GitHub environments (secrets/vars) to be configured. Without them the builds still run but
|
||||||
# produce unsigned/untrusted output. See apps/desktop/element.io/healthchat/README.
|
# produce unsigned/untrusted output. See apps/desktop/element.io/healthchat/README.
|
||||||
# - The desktop app version comes from apps/desktop/package.json (electron-builder); the per-job
|
# - The desktop app version comes from apps/desktop/package.json (electron-builder); the per-job
|
||||||
# `version` input only feeds the macOS/Linux update manifest and is mangled into a nightly
|
# `version` input only feeds the macOS update manifest and is mangled into a nightly
|
||||||
# string by Windows squirrel, so it cannot set the app version. To keep the installers / About
|
# string by Windows squirrel, so it cannot set the app version. To keep the installers / About
|
||||||
# dialog in sync with the tag, apps/desktop/package.json must be bumped to the release version
|
# dialog in sync with the tag, apps/desktop/package.json must be bumped to the release version
|
||||||
# in the release commit. The "Assert desktop app version matches release" step below enforces
|
# in the release commit. The "Assert desktop app version matches release" step below enforces
|
||||||
@@ -176,22 +176,6 @@ jobs:
|
|||||||
nightly: false
|
nightly: false
|
||||||
deploy: false
|
deploy: false
|
||||||
|
|
||||||
linux:
|
|
||||||
name: Linux ${{ matrix.arch }}
|
|
||||||
needs: prepare
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
arch: [amd64, arm64]
|
|
||||||
uses: ./.github/workflows/build_desktop_linux.yaml
|
|
||||||
with:
|
|
||||||
repository: ${{ github.repository }}
|
|
||||||
ref: ${{ github.sha }}
|
|
||||||
arch: ${{ matrix.arch }}
|
|
||||||
sqlcipher: static
|
|
||||||
test: false
|
|
||||||
|
|
||||||
macos:
|
macos:
|
||||||
name: macOS
|
name: macOS
|
||||||
needs: prepare
|
needs: prepare
|
||||||
@@ -234,7 +218,7 @@ jobs:
|
|||||||
|
|
||||||
release:
|
release:
|
||||||
name: Publish to GitHub Release
|
name: Publish to GitHub Release
|
||||||
needs: [linux, macos, windows]
|
needs: [macos, windows]
|
||||||
# Only publish on a real tag push; manual workflow_dispatch runs build but do not publish.
|
# Only publish on a real tag push; manual workflow_dispatch runs build but do not publish.
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -254,8 +238,6 @@ jobs:
|
|||||||
find dist-artifacts -type f \( -iname '*.dmg' -o -iname '*-mac.zip' \) -exec cp -v {} release-files/ \;
|
find dist-artifacts -type f \( -iname '*.dmg' -o -iname '*-mac.zip' \) -exec cp -v {} release-files/ \;
|
||||||
# Windows: per-machine MSI + Squirrel "Setup" installer
|
# Windows: per-machine MSI + Squirrel "Setup" installer
|
||||||
find dist-artifacts -type f \( -iname '*.msi' -o -iname '* Setup*.exe' \) -exec cp -v {} release-files/ \;
|
find dist-artifacts -type f \( -iname '*.msi' -o -iname '* Setup*.exe' \) -exec cp -v {} release-files/ \;
|
||||||
# Linux: portable tarball + Debian package
|
|
||||||
find dist-artifacts -type f \( -iname '*.tar.gz' -o -iname '*.deb' \) -exec cp -v {} release-files/ \;
|
|
||||||
echo "--- release files ---"
|
echo "--- release files ---"
|
||||||
ls -la release-files
|
ls -la release-files
|
||||||
test -n "$(ls -A release-files)" || { echo "::error::No installer files collected"; exit 1; }
|
test -n "$(ls -A release-files)" || { echo "::error::No installer files collected"; exit 1; }
|
||||||
|
|||||||
@@ -7,6 +7,16 @@ in <version>` section and uses it as the body of the GitHub Release.
|
|||||||
One section per released version, newest on top. Upstream element-hq
|
One section per released version, newest on top. Upstream element-hq
|
||||||
`CHANGELOG.md` is kept separate and untouched.
|
`CHANGELOG.md` is kept separate and untouched.
|
||||||
|
|
||||||
|
## Changes in 1.1.2 (2026-06-28)
|
||||||
|
|
||||||
|
🐛 Fixes
|
||||||
|
|
||||||
|
- Removed the Linux desktop build from the release pipeline. It could never
|
||||||
|
succeed in this fork: the upstream Linux build step pulls a build-env Docker
|
||||||
|
image keyed by commit SHA that only exists in the upstream element-hq registry,
|
||||||
|
so every tagged build failed with `manifest unknown`. Desktop releases now ship
|
||||||
|
macOS (.dmg/.zip) and Windows (.msi/.exe) installers only.
|
||||||
|
|
||||||
## Changes in 1.1.1 (2026-06-26)
|
## Changes in 1.1.1 (2026-06-26)
|
||||||
|
|
||||||
🙌 Improvements
|
🙌 Improvements
|
||||||
|
|||||||
@@ -45,11 +45,13 @@ CI
|
|||||||
--
|
--
|
||||||
.github/workflows/build-healthchat-desktop.yaml builds the plugin + webapp artifact and
|
.github/workflows/build-healthchat-desktop.yaml builds the plugin + webapp artifact and
|
||||||
feeds it into build_desktop_prepare.yaml (`config: element.io/healthchat`,
|
feeds it into build_desktop_prepare.yaml (`config: element.io/healthchat`,
|
||||||
`webapp-artifact: healthchat-webapp`) and the per-platform build_desktop_{linux,macos,windows}.yaml
|
`webapp-artifact: healthchat-webapp`) and the per-platform build_desktop_{macos,windows}.yaml
|
||||||
reusables. It runs on every `healthchat-v*` tag (alongside the web build) and via
|
reusables. It runs on every `healthchat-v*` tag (alongside the web build) and via
|
||||||
workflow_dispatch. The reusables are pointed at THIS fork (`repository`/`ref` inputs) so the
|
workflow_dispatch. The reusables are pointed at THIS fork (`repository`/`ref` inputs) so the
|
||||||
Electron shell, icons and the healthchat:// deep-link handler are fork-branded. On a tag push the
|
Electron shell, icons and the healthchat:// deep-link handler are fork-branded. On a tag push the
|
||||||
`release` job attaches the .dmg / .zip / .exe / .msi / .deb / .tar.gz to the GitHub Release.
|
`release` job attaches the .dmg / .zip / .exe / .msi to the GitHub Release.
|
||||||
|
(Linux is not built: the upstream build_desktop_linux.yaml needs a build-env Docker image
|
||||||
|
keyed by commit SHA that only exists in the upstream element-hq registry, so it can't run here.)
|
||||||
|
|
||||||
Branding assets
|
Branding assets
|
||||||
---------------
|
---------------
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"productName": "Element",
|
"productName": "Element",
|
||||||
"main": "lib/electron-main.js",
|
"main": "lib/electron-main.js",
|
||||||
"exports": "./lib/electron-main.js",
|
"exports": "./lib/electron-main.js",
|
||||||
"version": "1.1.1",
|
"version": "1.1.2",
|
||||||
"description": "Element: the future of secure communication",
|
"description": "Element: the future of secure communication",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Element",
|
"name": "Element",
|
||||||
|
|||||||
Reference in New Issue
Block a user