From 595554f18a70db429fc517b0885bd4f9855ce8fc Mon Sep 17 00:00:00 2001 From: keiko233 Date: Wed, 15 Nov 2023 13:52:56 +0800 Subject: [PATCH] chore: add release build --- .github/workflows/release.yml | 107 ++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..79167cad --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,107 @@ +name: Release Build + +on: + workflow_dispatch: + push: + branches: + - main + +env: + CARGO_INCREMENTAL: 0 + RUST_BACKTRACE: short + +jobs: + release: + strategy: + matrix: + os: [windows-latest, ubuntu-latest, macos-latest] + + runs-on: ${{ matrix.os }} + if: startsWith(github.repository, 'keiko233') + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: install Rust stable + uses: dtolnay/rust-toolchain@stable + + - name: Rust Cache + uses: Swatinem/rust-cache@v2 + with: + workspaces: src-tauri + + - name: Install Node + uses: actions/setup-node@v3 + with: + node-version: "20" + + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: 8 + run_install: false + + - name: Install Dependencies (Ubuntu Only) + if: startsWith(matrix.os, 'ubuntu-') + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf openssl + + - name: Pnpm install and check + run: | + pnpm i + pnpm check + + - name: Tauri build + uses: tauri-apps/tauri-action@v0 + env: + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + with: + tagName: v__VERSION__ + releaseName: "Clash Nyanpasu v__VERSION__" + releaseBody: "More new features are now supported." + releaseDraft: false + prerelease: false + tauriScript: pnpm + args: -f default-meta + + - name: Portable Bundle + if: matrix.os == 'windows-latest' + run: | + pnpm build -f default-meta + pnpm portable + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + VITE_WIN_PORTABLE: 1 + + release-update: + needs: release + runs-on: ubuntu-latest + if: | + startsWith(github.repository, 'keiko233') + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install Node + uses: actions/setup-node@v3 + with: + node-version: "20" + + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: 8 + run_install: false + + - name: Pnpm install + run: pnpm i + + - name: Release updater file + run: pnpm updater + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}