diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 35829dd..eaead03 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -58,7 +58,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 10 + version: 9 run_install: false - name: Install Bun @@ -68,12 +68,12 @@ jobs: - name: Setup Rust uses: dtolnay/rust-toolchain@stable - with: - targets: ${{ matrix.target }} - 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 \ @@ -85,12 +85,40 @@ jobs: patchelf \ libssl-dev \ rpm \ + flatpak \ + flatpak-builder \ elfutils \ - librsvg2-dev \ + libfuse2 + + # 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) + - name: Workaround ldd failure for Bun binary + if: matrix.os == 'linux' + run: | + # linuxdeploy crashes if ldd returns 1 (e.g. for static/Bun binaries). + # We replace ldd with a wrapper that returns 0 for our 'shield' binary. + sudo mv /usr/bin/ldd /usr/bin/ldd.real + sudo tee /usr/bin/ldd << 'EOF' + #!/bin/bash + for arg in "$@"; do + # Check if the argument ends with /shield (the binary name) + if [[ "$arg" == *"/shield" ]]; then + exit 0 + fi + done + exec /usr/bin/ldd.real "$@" + EOF + sudo chmod +x /usr/bin/ldd + + - name: Install WebKit2GTK (version differs across Ubuntu images; try 4.1 then 4.0) + if: matrix.os == 'linux' + shell: bash + run: | + set -euxo pipefail sudo apt-get install -y --no-install-recommends libwebkit2gtk-4.1-dev \ || sudo apt-get install -y --no-install-recommends libwebkit2gtk-4.0-dev @@ -171,7 +199,8 @@ jobs: working-directory: desktop env: TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} - run: pnpm tauri build --target ${{ matrix.target }} --bundles appimage,deb,rpm + APPIMAGE_EXTRACT_AND_RUN: 1 + run: pnpm tauri build --verbose --bundles appimage,deb,rpm --target ${{ matrix.target }} - name: Build Tauri app (Non-Linux) if: matrix.os != 'linux'