Tauri Desktop Build #39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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) || '' }} | |