From 9e7ad06a59218bcfd3be3e8a83a8ee0c10139c93 Mon Sep 17 00:00:00 2001 From: tomsun28 Date: Sat, 24 Jan 2026 16:24:22 +0800 Subject: [PATCH 1/3] Revert "feat: improve Linux build dependencies and bundle configuration in release workflow (#18)" This reverts commit 85b4c32cadc6169a789f19fde0d6c169e1bf632e. --- .github/workflows/release.yml | 66 ++++++------------------------- desktop/src-tauri/tauri.conf.json | 9 ----- 2 files changed, 13 insertions(+), 62 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e409f34..f084b02 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,34 +73,9 @@ jobs: - name: Install Linux dependencies if: matrix.os == 'linux' - shell: bash run: | - set -euxo pipefail sudo apt-get update - # Core build tools and pkg-config - sudo apt-get install -y --no-install-recommends \ - build-essential \ - pkg-config \ - curl \ - wget \ - file \ - patchelf \ - libssl-dev \ - rpm \ - flatpak \ - flatpak-builder \ - elfutils - # GTK/GLib stack for gdk-3.0, glib-2.0, gio-2.0 - sudo apt-get install -y --no-install-recommends \ - libgtk-3-dev \ - librsvg2-dev \ - libayatana-appindicator3-dev - # WebKit2GTK (version differs across Ubuntu images; try 4.1 then 4.0) - sudo apt-get install -y --no-install-recommends libwebkit2gtk-4.1-dev \ - || sudo apt-get install -y --no-install-recommends libwebkit2gtk-4.0-dev - # libsoup also changed major version; prefer 3.0 with fallback to 2.4 - sudo apt-get install -y --no-install-recommends libsoup-3.0-dev \ - || sudo apt-get install -y --no-install-recommends libsoup2.4-dev + sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf - name: Install root dependencies run: pnpm install @@ -174,12 +149,7 @@ jobs: working-directory: desktop env: TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} - run: | - if [ "${{ matrix.os }}" = "linux" ]; then - pnpm tauri build --target ${{ matrix.target }} --bundles appimage,deb,rpm - else - pnpm tauri build --target ${{ matrix.target }} - fi + run: pnpm tauri build --target ${{ matrix.target }} - name: Package macOS artifacts if: matrix.os == 'darwin' @@ -220,40 +190,30 @@ jobs: if: matrix.os == 'linux' shell: bash run: | - set -euxo pipefail + set -euo pipefail mkdir -p release-assets VERSION="${{ github.event.inputs.version || github.ref_name }}" - + # AppImage (updater artifact) - APPIMAGE=$(find desktop/src-tauri/target/${{ matrix.target }}/release/bundle -name "*.AppImage" | head -1 || true) + APPIMAGE=$(find desktop/src-tauri/target/${{ matrix.target }}/release/bundle/appimage -name "*.AppImage" 2>/dev/null | head -1 || true) if [ -n "$APPIMAGE" ]; then NEW_APPIMAGE="${APP_NAME}-${VERSION}-linux-${{ matrix.arch }}.AppImage" cp "$APPIMAGE" "release-assets/$NEW_APPIMAGE" chmod +x "release-assets/$NEW_APPIMAGE" - [ -f "$APPIMAGE.sig" ] && cp "$APPIMAGE.sig" "release-assets/$NEW_APPIMAGE.sig" || echo ".sig for AppImage not found" - echo "AppImage copied: $NEW_APPIMAGE" - else - echo "No AppImage found under target/release/bundle" >&2 + [ -f "$APPIMAGE.sig" ] && cp "$APPIMAGE.sig" "release-assets/$NEW_APPIMAGE.sig" + echo "AppImage: $NEW_APPIMAGE" fi - + # Deb package - DEB=$(find desktop/src-tauri/target/${{ matrix.target }}/release/bundle -name "*.deb" | head -1 || true) + DEB=$(find desktop/src-tauri/target/${{ matrix.target }}/release/bundle/deb -name "*.deb" 2>/dev/null | head -1 || true) if [ -n "$DEB" ]; then - NEW_DEB="${APP_NAME}-${VERSION}-linux-${{ matrix.arch }}.deb" - cp "$DEB" "release-assets/$NEW_DEB" - echo "Deb package copied: $NEW_DEB" - else - echo "No .deb found (optional)" + cp "$DEB" "release-assets/${APP_NAME}-${VERSION}-linux-${{ matrix.arch }}.deb" fi - + # RPM package - RPM=$(find desktop/src-tauri/target/${{ matrix.target }}/release/bundle -name "*.rpm" | head -1 || true) + RPM=$(find desktop/src-tauri/target/${{ matrix.target }}/release/bundle/rpm -name "*.rpm" 2>/dev/null | head -1 || true) if [ -n "$RPM" ]; then - NEW_RPM="${APP_NAME}-${VERSION}-linux-${{ matrix.arch }}.rpm" - cp "$RPM" "release-assets/$NEW_RPM" - echo "RPM package copied: $NEW_RPM" - else - echo "No .rpm found (optional)" + cp "$RPM" "release-assets/${APP_NAME}-${VERSION}-linux-${{ matrix.arch }}.rpm" fi - name: Package Windows artifacts diff --git a/desktop/src-tauri/tauri.conf.json b/desktop/src-tauri/tauri.conf.json index a5f156e..9e0ff96 100644 --- a/desktop/src-tauri/tauri.conf.json +++ b/desktop/src-tauri/tauri.conf.json @@ -47,15 +47,6 @@ "certificateThumbprint": null, "digestAlgorithm": "sha256", "timestampUrl": "" - }, - "linux": { - "deb": { - "depends": [] - }, - "appimage": { - "bundleMediaFramework": false, - "files": {} - } } }, "plugins": { From f800da40cab26fe4d70eaf11b4ba5201a49b3d8d Mon Sep 17 00:00:00 2001 From: tomsun28 Date: Sat, 24 Jan 2026 16:37:06 +0800 Subject: [PATCH 2/3] feat: improve Linux build dependencies and bundle configuration in release workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Expand Linux dependencies to include core build tools (build-essential, pkg-config, curl, wget, file) - Add GTK/GLib stack dependencies (libgtk-3-dev, libayatana-appindicator3-dev) - Add version fallback logic for WebKit2GTK (4.1 → 4.0) and libsoup (3.0 → 2.4) - Add packaging tools (rpm, elfutils) and libssl-dev - Add explicit bash shell and conditional bundle configuration for Linux builds - Configure Linux --- .github/workflows/release.yml | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f084b02..442a186 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -75,7 +75,28 @@ jobs: if: matrix.os == 'linux' run: | sudo apt-get update - sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf + # Core build tools and pkg-config + sudo apt-get install -y --no-install-recommends \ + build-essential \ + pkg-config \ + curl \ + wget \ + file \ + patchelf \ + libssl-dev \ + rpm \ + elfutils \ + librsvg2-dev \ + libgtk-3-dev \ + libayatana-appindicator3-dev + + # WebKit2GTK (version differs across Ubuntu images; try 4.1 then 4.0) + sudo apt-get install -y --no-install-recommends libwebkit2gtk-4.1-dev \ + || sudo apt-get install -y --no-install-recommends libwebkit2gtk-4.0-dev + + # libsoup also changed major version; prefer 3.0 with fallback to 2.4 + sudo apt-get install -y --no-install-recommends libsoup-3.0-dev \ + || sudo apt-get install -y --no-install-recommends libsoup2.4-dev - name: Install root dependencies run: pnpm install @@ -149,7 +170,13 @@ jobs: working-directory: desktop env: TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} - run: pnpm tauri build --target ${{ matrix.target }} + shell: bash + run: | + if [ "${{ matrix.os }}" = "linux" ]; then + pnpm tauri build --target ${{ matrix.target }} --bundles appimage,deb,rpm + else + pnpm tauri build --target ${{ matrix.target }} + fi - name: Package macOS artifacts if: matrix.os == 'darwin' From 6445c2ee4165313b119192e0399d6bbeff5d2e91 Mon Sep 17 00:00:00 2001 From: tomsun28 Date: Sat, 24 Jan 2026 16:51:34 +0800 Subject: [PATCH 3/3] action: fix the release action --- .github/workflows/release.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 442a186..35829dd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -166,17 +166,19 @@ jobs: bun build --compile --target=bun-linux-x64 ./src/index.ts --outfile desktop/src-tauri/bin/shield fi - - name: Build Tauri app + - name: Build Tauri app (Linux) + if: matrix.os == 'linux' working-directory: desktop env: TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} - shell: bash - run: | - if [ "${{ matrix.os }}" = "linux" ]; then - pnpm tauri build --target ${{ matrix.target }} --bundles appimage,deb,rpm - else - pnpm tauri build --target ${{ matrix.target }} - fi + run: pnpm tauri build --target ${{ matrix.target }} --bundles appimage,deb,rpm + + - name: Build Tauri app (Non-Linux) + if: matrix.os != 'linux' + working-directory: desktop + env: + TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} + run: pnpm tauri build --target ${{ matrix.target }} - name: Package macOS artifacts if: matrix.os == 'darwin'