|
@@ -0,0 +1,136 @@
|
|
|
+name: Release Build
|
|
|
+
|
|
|
+on:
|
|
|
+ workflow_dispatch:
|
|
|
+ push:
|
|
|
+permissions: write-all
|
|
|
+env:
|
|
|
+ CARGO_INCREMENTAL: 0
|
|
|
+ RUST_BACKTRACE: short
|
|
|
+
|
|
|
+jobs:
|
|
|
+ alpha:
|
|
|
+ strategy:
|
|
|
+ fail-fast: false
|
|
|
+ matrix:
|
|
|
+ include:
|
|
|
+ - os: windows-latest
|
|
|
+ target: x86_64-pc-windows-msvc
|
|
|
+ - os: windows-latest
|
|
|
+ target: aarch64-pc-windows-msvc
|
|
|
+ - os: macos-latest
|
|
|
+ target: aarch64-apple-darwin
|
|
|
+ - os: macos-latest
|
|
|
+ target: x86_64-apple-darwin
|
|
|
+
|
|
|
+ runs-on: ${{ matrix.os }}
|
|
|
+ steps:
|
|
|
+ - name: Checkout Repository
|
|
|
+ uses: actions/checkout@v4
|
|
|
+
|
|
|
+ - name: Apply Patch
|
|
|
+ if: matrix.target == 'aarch64-pc-windows-msvc'
|
|
|
+ run: |
|
|
|
+ git config --global user.email "clash-verge-rev@github.io"
|
|
|
+ git config --global user.name "clash-verge-rev"
|
|
|
+ git am patches/support-windows-aarch64.patch
|
|
|
+
|
|
|
+ - name: Init Submodule
|
|
|
+ if: matrix.target == 'aarch64-pc-windows-msvc'
|
|
|
+ run: git submodule update --init --recursive
|
|
|
+
|
|
|
+ - name: Install Rust Stable
|
|
|
+ uses: dtolnay/rust-toolchain@stable
|
|
|
+
|
|
|
+ - name: Add Rust Target
|
|
|
+ run: rustup target add ${{ matrix.target }}
|
|
|
+
|
|
|
+ - name: Rust Cache
|
|
|
+ uses: Swatinem/rust-cache@v2
|
|
|
+ with:
|
|
|
+ workspaces: src-tauri
|
|
|
+
|
|
|
+ - name: Install Node
|
|
|
+ uses: actions/setup-node@v4
|
|
|
+ with:
|
|
|
+ node-version: "20"
|
|
|
+
|
|
|
+ - uses: pnpm/action-setup@v2
|
|
|
+ name: Install pnpm
|
|
|
+ with:
|
|
|
+ version: 8
|
|
|
+ run_install: false
|
|
|
+
|
|
|
+ - name: Pnpm install and check
|
|
|
+ run: |
|
|
|
+ pnpm i
|
|
|
+ pnpm check ${{ matrix.target }}
|
|
|
+
|
|
|
+ - name: Tauri build
|
|
|
+ uses: tauri-apps/tauri-action@v0
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
|
|
+ TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
|
|
+ with:
|
|
|
+ tagName: alpha
|
|
|
+ releaseName: "Clash Verge Rev Alpha"
|
|
|
+ releaseBody: "More new features are now supported."
|
|
|
+ releaseDraft: false
|
|
|
+ prerelease: true
|
|
|
+ tauriScript: pnpm
|
|
|
+ args: --target ${{ matrix.target }}
|
|
|
+
|
|
|
+ - name: Portable Bundle
|
|
|
+ if: matrix.os == 'windows-latest'
|
|
|
+ run: pnpm portable ${{ matrix.target }} --alpha
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
|
|
+ TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
|
|
+
|
|
|
+ alpha-for-linux:
|
|
|
+ strategy:
|
|
|
+ fail-fast: false
|
|
|
+ matrix:
|
|
|
+ include:
|
|
|
+ - os: ubuntu-latest
|
|
|
+ target: x86_64-unknown-linux-gnu
|
|
|
+ - os: ubuntu-latest
|
|
|
+ target: aarch64-unknown-linux-gnu
|
|
|
+ runs-on: ${{ matrix.os }}
|
|
|
+ steps:
|
|
|
+ - name: Checkout Repository
|
|
|
+ uses: actions/checkout@v4
|
|
|
+
|
|
|
+ - name: Build for Linux
|
|
|
+ uses: ./.github/build-for-linux
|
|
|
+ env:
|
|
|
+ TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
|
|
+ TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
|
|
+ with:
|
|
|
+ target: ${{ matrix.target }}
|
|
|
+ - name: Get Version
|
|
|
+ run: |
|
|
|
+ sudo apt-get update
|
|
|
+ sudo apt-get install jq
|
|
|
+ echo "VERSION=$(cat package.json | jq '.version' | tr -d '"')" >> $GITHUB_ENV
|
|
|
+ - name: Upload Release
|
|
|
+ if: startsWith(matrix.target, 'x86_64')
|
|
|
+ uses: softprops/action-gh-release@v1
|
|
|
+ with:
|
|
|
+ tag_name: alpha
|
|
|
+ name: "Clash Verge Rev Alpha"
|
|
|
+ body: "More new features are now supported."
|
|
|
+ prerelease: true
|
|
|
+ token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ files: src-tauri/target/${{ matrix.target }}/release/bundle/appimage/*.AppImage*
|
|
|
+ - name: Upload Release
|
|
|
+ uses: softprops/action-gh-release@v1
|
|
|
+ with:
|
|
|
+ tag_name: alpha
|
|
|
+ name: "Clash Verge Rev Alpha"
|
|
|
+ body: "More new features are now supported."
|
|
|
+ prerelease: true
|
|
|
+ token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ files: src-tauri/target/${{ matrix.target }}/release/bundle/deb/*.deb
|