name: Release on: push: tags: - 'v*' env: CARGO_TERM_COLOR: always RUST_BACKTRACE: 1 jobs: release: name: Build & Release runs-on: windows-latest permissions: contents: write steps: - uses: actions/checkout@v4 - name: Install Rust uses: dtolnay/rust-toolchain@stable - name: Install pnpm uses: pnpm/action-setup@v4 with: version: 9 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm cache-dependency-path: desktop/pnpm-lock.yaml - name: Cache Cargo uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-release-${{ hashFiles('**/Cargo.lock') }} restore-keys: ${{ runner.os }}-cargo- - name: Run Rust tests working-directory: . run: cargo test --workspace - name: Install frontend dependencies working-directory: desktop run: pnpm install --frozen-lockfile - name: Run frontend tests working-directory: desktop run: pnpm vitest run - name: Build Tauri application uses: tauri-apps/tauri-action@v0.5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: projectPath: desktop tagName: ${{ github.ref_name }} releaseName: 'ZCLAW ${{ github.ref_name }}' releaseBody: 'See the assets to download and install this version.' releaseDraft: true prerelease: false - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: windows-installer path: desktop/src-tauri/target/release/bundle/nsis/*.exe