From b93e6d491a2d2340cdc7da1da4a074426333868e Mon Sep 17 00:00:00 2001 From: lucaronin Date: Sat, 25 Apr 2026 11:50:01 +0200 Subject: [PATCH] ci: test linux alpha release artifacts --- .github/workflows/release.yml | 110 +++++++++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 974dfbe1..845eb56e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -303,6 +303,93 @@ jobs: src-tauri/target/${{ matrix.target }}/release/bundle/macos/*.app.tar.gz.sig retention-days: 1 + build-linux: + name: Build (linux-x86_64) + needs: version + runs-on: ubuntu-22.04 + + steps: + - uses: actions/checkout@v4 + + - name: Install Tauri Linux system dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + libwebkit2gtk-4.1-dev \ + libsoup-3.0-dev \ + libxdo-dev \ + libssl-dev \ + libayatana-appindicator3-dev \ + librsvg2-dev \ + curl \ + wget \ + patchelf \ + build-essential \ + file + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'pnpm' + + - name: Setup Rust + uses: dtolnay/rust-toolchain@stable + with: + targets: x86_64-unknown-linux-gnu + + - name: Cache Rust dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + src-tauri/target + key: ${{ runner.os }}-release-cargo-x86_64-unknown-linux-gnu-${{ env.RUST_TARGET_CACHE_VERSION }}-${{ hashFiles('src-tauri/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-release-cargo-x86_64-unknown-linux-gnu-${{ env.RUST_TARGET_CACHE_VERSION }}- + + - name: Install frontend dependencies + run: pnpm install --frozen-lockfile + + - name: Clear cached bundle artifacts + run: | + rm -rf src-tauri/target/x86_64-unknown-linux-gnu/release/bundle + + - name: Set version + run: | + VERSION="${{ needs.version.outputs.version }}" + jq --arg v "$VERSION" '.version = $v' src-tauri/tauri.conf.json > tmp.json && mv tmp.json src-tauri/tauri.conf.json + sed -i "s/^version = \".*\"/version = \"$VERSION\"/" src-tauri/Cargo.toml + + - name: Build Tauri app (Linux bundles) + env: + TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} + TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + VITE_SENTRY_DSN: ${{ secrets.VITE_SENTRY_DSN }} + SENTRY_DSN: ${{ secrets.SENTRY_DSN }} + VITE_POSTHOG_KEY: ${{ secrets.VITE_POSTHOG_KEY }} + VITE_POSTHOG_HOST: ${{ secrets.VITE_POSTHOG_HOST }} + run: | + pnpm tauri build --target x86_64-unknown-linux-gnu --bundles deb,appimage + + - name: Upload Linux bundles + uses: actions/upload-artifact@v4 + with: + name: linux-x86_64-bundles + path: | + src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/deb/*.deb + src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage + src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage.tar.gz + src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage.tar.gz.sig + if-no-files-found: error + retention-days: 1 + build-windows: name: Build (windows-x86_64) needs: version @@ -429,7 +516,7 @@ jobs: # ───────────────────────────────────────────────────────────── release: name: GitHub Release (alpha) - needs: [version, build, build-windows] + needs: [version, build, build-linux, build-windows] runs-on: ubuntu-latest permissions: contents: write @@ -477,7 +564,7 @@ jobs: echo "---" echo "**Alpha build — updated on every push to \`main\`**" echo "" - echo "**Includes macOS (Apple Silicon) and Windows x64 bundles**" + echo "**Includes macOS (Apple Silicon), Linux x64, and Windows x64 bundles**" echo "" echo "*Built from \`$(git rev-parse --short HEAD)\` on $(date -u +%Y-%m-%d)*" } > release_notes.md @@ -506,6 +593,12 @@ jobs: ARM_SIG=$(cat "$ARM_SIG_FILE") ARM_UPDATER=$(basename "$ARM_UPDATER_FILE") + LINUX_SIG_FILE=$(find_required "linux-x86_64-bundles/*/*.AppImage.sig" "linux-x86_64-bundles/*/*.AppImage.tar.gz.sig" "linux-x86_64-bundles/*.AppImage.sig" "linux-x86_64-bundles/*.AppImage.tar.gz.sig") + LINUX_UPDATER_FILE="${LINUX_SIG_FILE%.sig}" + LINUX_SIG=$(cat "$LINUX_SIG_FILE") + LINUX_UPDATER=$(basename "$LINUX_UPDATER_FILE") + LINUX_DOWNLOAD=$(basename "$(find_required "linux-x86_64-bundles/*/*.AppImage" "linux-x86_64-bundles/*/*.deb" "linux-x86_64-bundles/*/*.AppImage.tar.gz" "linux-x86_64-bundles/*.AppImage" "linux-x86_64-bundles/*.deb" "linux-x86_64-bundles/*.AppImage.tar.gz")") + WINDOWS_SIG_FILE=$(find_required "windows-x86_64-bundles/*/*-setup.exe.sig" "windows-x86_64-bundles/*/*.msi.sig" "windows-x86_64-bundles/*/*.nsis.zip.sig" "windows-x86_64-bundles/*/*.msi.zip.sig" "windows-x86_64-bundles/*-setup.exe.sig" "windows-x86_64-bundles/*.msi.sig" "windows-x86_64-bundles/*.nsis.zip.sig" "windows-x86_64-bundles/*.msi.zip.sig") WINDOWS_UPDATER_FILE="${WINDOWS_SIG_FILE%.sig}" WINDOWS_SIG=$(cat "$WINDOWS_SIG_FILE") @@ -523,6 +616,11 @@ jobs: "url": "https://github.com/${REPO}/releases/download/${TAG}/${ARM_UPDATER}", "download_url": "https://github.com/${REPO}/releases/download/${TAG}/${ARM_UPDATER}" }, + "linux-x86_64": { + "signature": "${LINUX_SIG}", + "url": "https://github.com/${REPO}/releases/download/${TAG}/${LINUX_UPDATER}", + "download_url": "https://github.com/${REPO}/releases/download/${TAG}/${LINUX_DOWNLOAD}" + }, "windows-x86_64": { "signature": "${WINDOWS_SIG}", "url": "https://github.com/${REPO}/releases/download/${TAG}/${WINDOWS_UPDATER}", @@ -544,6 +642,14 @@ jobs: files: | updater-aarch64/*.app.tar.gz updater-aarch64/*.app.tar.gz.sig + linux-x86_64-bundles/*.deb + linux-x86_64-bundles/*.AppImage + linux-x86_64-bundles/*.AppImage.tar.gz + linux-x86_64-bundles/*.AppImage.tar.gz.sig + linux-x86_64-bundles/*/*.deb + linux-x86_64-bundles/*/*.AppImage + linux-x86_64-bundles/*/*.AppImage.tar.gz + linux-x86_64-bundles/*/*.AppImage.tar.gz.sig windows-x86_64-bundles/*.exe windows-x86_64-bundles/*.exe.sig windows-x86_64-bundles/*.msi