ci: Desktop-Pakete mit dem Updater-Schluessel signieren, Signatur und updateVersion ins Manifest

- ci.yml: Secrets TAURI_SIGNING_PRIVATE_KEY/_PASSWORD als env nur an den
  beiden tauri-build-Schritten des Jobs desktop (kein Job-env, kein
  --no-sign); alles andere strukturgleich
- desktop-collect.sh: liest <bundle>.sig (genau eine Base64-Zeile) als
  files.<p>.signature ins Manifest, schreibt updateVersion (X.Y.Z bzw.
  X.Y.Z-beta.g<sha7>); fehlende .sig bricht auf main/Tag oder bei
  gesetztem Schluessel ab, warnt sonst (dev, lokal --no-sign)
- desktop-stamp.sh check: kein Cache-Stand ohne updateVersion und
  Signaturen beider Plattformen
- .gitignore: *.key

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-17 15:34:45 +02:00
parent de81c74e53
commit 7004b5b020
4 changed files with 97 additions and 5 deletions
+9
View File
@@ -14,6 +14,9 @@
# Desktop-Pfaden, siehe .gitea/scripts/desktop-stamp.sh) bereits fertige
# Pakete im Zwischenspeicher des Runners liegen; Tags v* bauen immer neu;
# `publish` bleibt unveraendert.
# quick-260917-kgc: Die beiden tauri-build-Schritte signieren die Pakete mit dem
# Updater-Schluessel (Secrets TAURI_SIGNING_PRIVATE_KEY/_PASSWORD, nur an diesen
# zwei Schritten); desktop-collect.sh traegt die .sig-Inhalte ins Manifest.
name: Tessera CI/CD
on:
@@ -178,10 +181,16 @@ jobs:
- name: Linux-AppImage bauen
if: steps.reuse.outputs.reuse != 'true'
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
run: pnpm --filter @tessera/desktop exec tauri build --bundles appimage
- name: Windows-Installer bauen (Cross-Bau)
if: steps.reuse.outputs.reuse != 'true'
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
run: pnpm --filter @tessera/desktop exec tauri build --runner cargo-xwin --target x86_64-pc-windows-msvc --bundles nsis
- name: Pakete einsammeln