Skip to content

Tauri Desktop Build #39

Tauri Desktop Build

Tauri Desktop Build #39

Workflow file for this run

name: Tauri Desktop Build
on:
push:
tags:
- 'v*'
workflow_dispatch:
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- platform: macos-latest
target: aarch64-apple-darwin
- platform: macos-latest
target: x86_64-apple-darwin
- platform: ubuntu-latest
target: x86_64-unknown-linux-gnu
bundles: deb,rpm,appimage
- platform: ubuntu-latest
target: aarch64-unknown-linux-gnu
bundles: deb,rpm
- platform: windows-latest
target: x86_64-pc-windows-msvc
bundles: msi,nsis
- platform: windows-latest
target: aarch64-pc-windows-msvc
bundles: msi,nsis
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install Linux native build dependencies
if: matrix.target == 'x86_64-unknown-linux-gnu'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf
- name: Install Linux ARM64 cross-compilation tools
if: matrix.target == 'aarch64-unknown-linux-gnu'
run: |
CODENAME="$(lsb_release -cs)"
sudo dpkg --add-architecture arm64
if [ -f /etc/apt/sources.list ]; then
sudo sed -i 's/^deb /deb [arch=amd64] /' /etc/apt/sources.list
fi
if [ -f /etc/apt/sources.list.d/ubuntu.sources ]; then
sudo sed -i '/^Architectures:/d; /^Types: deb$/a Architectures: amd64' \
/etc/apt/sources.list.d/ubuntu.sources
fi
{
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports ${CODENAME} main restricted universe multiverse"
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports ${CODENAME}-updates main restricted universe multiverse"
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports ${CODENAME}-backports main restricted universe multiverse"
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports ${CODENAME}-security main restricted universe multiverse"
} | sudo tee /etc/apt/sources.list.d/arm64.list
sudo apt-get update
sudo apt-get install -y \
gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu \
pkg-config \
libssl-dev:arm64 \
libwebkit2gtk-4.1-dev:arm64 \
libgtk-3-dev:arm64 \
libayatana-appindicator3-dev:arm64 \
librsvg2-dev:arm64 \
patchelf
mkdir -p ~/.cargo
cat >> ~/.cargo/config.toml <<EOF
[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"
EOF
echo 'CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc' >> $GITHUB_ENV
echo 'CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++' >> $GITHUB_ENV
echo 'PKG_CONFIG_ALLOW_CROSS=1' >> $GITHUB_ENV
echo 'PKG_CONFIG_SYSROOT_DIR=/' >> $GITHUB_ENV
echo 'PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig' >> $GITHUB_ENV
echo 'OPENSSL_DIR=/usr' >> $GITHUB_ENV
echo 'OPENSSL_LIB_DIR=/usr/lib/aarch64-linux-gnu' >> $GITHUB_ENV
echo 'OPENSSL_INCLUDE_DIR=/usr/include' >> $GITHUB_ENV
- name: Rust Cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Install dependencies
run: npm ci
- name: Build Tauri App
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: ${{ github.ref_name }}
releaseName: FOFA Leak Search ${{ github.ref_name }}
releaseBody: |
FOFA Leak Search Desktop Release
releaseDraft: true
prerelease: false
tauriScript: npx tauri
args: >
--target ${{ matrix.target }}
${{ matrix.bundles && format('--bundles {0}', matrix.bundles) || '' }}