Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 35 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
version: 9
run_install: false

- name: Install Bun
Expand All @@ -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 \
Expand All @@ -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

Expand Down Expand Up @@ -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'
Expand Down