feat(desktop): three-platform packaging and CI matrix (M3) (#177)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Yaowei Zheng
2026-08-04 18:32:13 +08:00
committed by GitHub
parent a4415cdb4b
commit 747077cabb
11 changed files with 2150 additions and 7 deletions
+26 -1
View File
@@ -77,9 +77,17 @@ jobs:
echo "exists=false" >> "$GITHUB_OUTPUT"
fi
release:
# Desktop installers (Electron shell, three-OS matrix). Runs BEFORE the release job:
# Release assets are immutable once published, so the installers must exist when the
# Release is created. See design § "桌面端原型 · 打包与更新" (M3).
desktop:
needs: check-release
if: needs.check-release.outputs.exists != 'true'
uses: ./.github/workflows/desktop-build.yml
release:
needs: [check-release, desktop]
if: needs.check-release.outputs.exists != 'true'
runs-on: ubuntu-latest
permissions:
contents: write
@@ -284,6 +292,22 @@ jobs:
cd dist-artifacts
sha256sum -- *.tar.gz *.zip > SHA256SUMS
# Desktop installers built by the desktop job (three-OS matrix): collected here so
# they are part of the Release's initial (immutable) asset set. Their checksums go
# in a separate SHA256SUMS.desktop — the OSS mirror script's canonical file list
# stays untouched (desktop installers are not mirrored yet).
- name: Collect desktop artifacts
uses: actions/download-artifact@v4
with:
pattern: desktop-*
merge-multiple: true
path: desktop-artifacts
- name: Generate desktop checksums
run: |
cd desktop-artifacts
sha256sum -- * > SHA256SUMS.desktop
# Release notes come from changelog/<version>/RELEASE.md, written during release preparation and
# committed BEFORE the tag (the release job runs on the tag's checkout, so a file added afterwards
# is invisible here). Present and non-empty -> published verbatim as the body; absent -> GitHub
@@ -320,6 +344,7 @@ jobs:
dist-artifacts/*.zip
dist-artifacts/*.sha256
dist-artifacts/SHA256SUMS
desktop-artifacts/*
install.sh
install.ps1