name: Release desktop app # Tag a version to trigger a release: # git tag v0.1.0 && git push --tags # # Produces signed Tauri bundles for macOS (arm + intel), Windows, and Linux, # uploads them to a GitHub Release, and publishes `latest.json` for the # updater plugin to discover. on: push: tags: - "v*" jobs: build: strategy: fail-fast: false matrix: include: - platform: macos-14 # apple silicon args: "--target aarch64-apple-darwin" - platform: macos-13 # intel args: "--target x86_64-apple-darwin" - platform: ubuntu-22.04 args: "" - platform: windows-latest args: "" runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v4 - name: Install pnpm uses: pnpm/action-setup@v4 with: version: 9 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: targets: ${{ matrix.platform == 'macos-14' && 'aarch64-apple-darwin' || matrix.platform == 'macos-13' && 'x86_64-apple-darwin' || '' }} - name: Install Linux build deps if: matrix.platform == 'ubuntu-22.04' run: | sudo apt update sudo apt install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libgtk-3-dev - name: Install JS deps run: pnpm install --frozen-lockfile - name: Build desktop app uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} # Client-side env vars baked into the bundle — paste your prod values # into the repo's Actions → Secrets so releases point at prod. VITE_SUPABASE_URL: ${{ secrets.VITE_SUPABASE_URL }} VITE_SUPABASE_ANON_KEY: ${{ secrets.VITE_SUPABASE_ANON_KEY }} VITE_AUTH_REDIRECT_URL: ${{ secrets.VITE_AUTH_REDIRECT_URL }} VITE_LIVEKIT_URL: ${{ secrets.VITE_LIVEKIT_URL }} with: projectPath: apps/desktop tagName: ${{ github.ref_name }} releaseName: "ChatApp ${{ github.ref_name }}" releaseBody: "See the assets below to download this version." releaseDraft: true prerelease: false args: ${{ matrix.args }}