From 1c4247a7c965cf1191c39ec159cf41228de765bb Mon Sep 17 00:00:00 2001 From: Schalli Date: Wed, 16 Sep 2026 16:46:59 +0200 Subject: [PATCH] ci(18-05): Windows-Cross-Bau (cargo-xwin/NSIS) in den Job desktop einbauen Baut nach dem AppImage zusaetzlich den Windows-Installer per Cross-Bau auf dem Linux-Runner (cargo-xwin, NSIS aus dem Ubuntu-Paket), cached SDK und NSIS-Plugins, und sammelt beide Dateien mit --require linux,windows ein. Co-Authored-By: Claude Opus 5 (1M context) --- .gitea/workflows/ci.yml | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 2250ea7..38eb204 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -2,8 +2,13 @@ # Tag v* -> Kanal live (Etiketten live + vX.Y.Z); Zweig live ohne Tag wird nur geprueft. # Die Entscheidung trifft .gitea/scripts/publish-images.sh anhand GITHUB_REF. # Tag v* (quick-260916-dcz): zusaetzlich Gitea-Release aus dem CHANGELOG.md-Abschnitt (publish-release.sh). -# Phase 18 (18-02): Job `desktop` baut vor `publish` das Linux-AppImage (Windows-NSIS -# folgt in 18-05) und uebergibt es per actions/cache; `publish` bricht ohne Manifest ab. +# Phase 18 (18-02): Job `desktop` baut vor `publish` das Linux-AppImage und +# uebergibt es per actions/cache; `publish` bricht ohne Manifest ab. +# Phase 18 (18-05): Derselbe Job baut zusaetzlich den Windows-Installer per +# Cross-Bau (cargo-xwin, NSIS aus dem Ubuntu-Paket) -- kein Windows-Rechner +# in der Pipeline. `tauri.conf.json`/`Cargo.toml` bleiben dabei immer rein +# numerisch (X.Y.Z), weil NSIS' Windows-Ressourcenfelder das verlangen; die +# Beta-Kennzeichnung lebt ausschliesslich im Dateinamen-Suffix. name: Tessera CI/CD on: @@ -81,7 +86,8 @@ jobs: sudo apt-get install -y --no-install-recommends \ libwebkit2gtk-4.1-dev libjavascriptcoregtk-4.1-dev \ libayatana-appindicator3-dev librsvg2-dev \ - libgtk-3-dev libssl-dev patchelf file xdg-utils + libgtk-3-dev libssl-dev patchelf file xdg-utils \ + lld llvm clang nsis - name: Rust-Toolchain run: | @@ -94,11 +100,19 @@ jobs: path: | ~/.cargo/registry ~/.cargo/git + ~/.cargo/bin/cargo-xwin ~/.cache/tauri + ~/.cache/cargo-xwin + ~/.local/share/tauri apps/desktop/src-tauri/target key: desktop-cargo-${{ hashFiles('apps/desktop/src-tauri/Cargo.lock') }} restore-keys: desktop-cargo- + - name: Windows-Werkzeuge + run: | + rustup target add x86_64-pc-windows-msvc + command -v cargo-xwin >/dev/null 2>&1 || cargo install --locked cargo-xwin + - name: Version setzen run: sh .gitea/scripts/desktop-version.sh @@ -109,13 +123,18 @@ jobs: cargo clippy - name: Alte Bundles entfernen - run: rm -rf apps/desktop/src-tauri/target/release/bundle + run: | + rm -rf apps/desktop/src-tauri/target/release/bundle + rm -rf apps/desktop/src-tauri/target/x86_64-pc-windows-msvc/release/bundle - name: Linux-AppImage bauen run: pnpm --filter @tessera/desktop exec tauri build --bundles appimage + - name: Windows-Installer bauen (Cross-Bau) + run: pnpm --filter @tessera/desktop exec tauri build --runner cargo-xwin --target x86_64-pc-windows-msvc --bundles nsis + - name: Pakete einsammeln - run: sh .gitea/scripts/desktop-collect.sh --require linux + run: sh .gitea/scripts/desktop-collect.sh --require linux,windows - name: Uebergabe an publish uses: actions/cache/save@v4