release: staged v0.1.3 (#432) #5
Workflow file for this run
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: Staged Release | |
| on: | |
| push: | |
| tags: | |
| - 'staged/v*' | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| release: | |
| name: Release | |
| runs-on: macos-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - uses: cashapp/activate-hermit@e49f5cb4dd64ff0b0b659d1d8df499595451155a # v1 | |
| - run: corepack enable pnpm | |
| - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 | |
| with: | |
| workspaces: apps/staged/src-tauri | |
| key: staged-release-aarch64-apple-darwin | |
| - name: Validate tag matches staged versions | |
| run: | | |
| TAG_VERSION="${GITHUB_REF#refs/tags/staged/v}" | |
| PACKAGE_VERSION="$(node -p "require('./apps/staged/package.json').version")" | |
| TAURI_VERSION="$(node -p "require('./apps/staged/src-tauri/tauri.conf.json').version")" | |
| CARGO_VERSION="$(grep '^version' apps/staged/src-tauri/Cargo.toml | head -1 | sed 's/version = "//;s/"//')" | |
| if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ] || [ "$TAG_VERSION" != "$TAURI_VERSION" ] || [ "$TAG_VERSION" != "$CARGO_VERSION" ]; then | |
| echo "::error::Tag version ($TAG_VERSION) must match package.json ($PACKAGE_VERSION), tauri.conf.json ($TAURI_VERSION), and Cargo.toml ($CARGO_VERSION)" | |
| exit 1 | |
| fi | |
| - name: Validate release secrets | |
| env: | |
| STAGED_UPDATER_PUBLIC_KEY: ${{ secrets.STAGED_UPDATER_PUBLIC_KEY }} | |
| TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} | |
| APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} | |
| APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | |
| APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} | |
| APPLE_ID: ${{ secrets.APPLE_ID }} | |
| APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} | |
| APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
| run: | | |
| missing=() | |
| for name in \ | |
| STAGED_UPDATER_PUBLIC_KEY \ | |
| TAURI_SIGNING_PRIVATE_KEY \ | |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD \ | |
| APPLE_CERTIFICATE \ | |
| APPLE_CERTIFICATE_PASSWORD \ | |
| APPLE_SIGNING_IDENTITY \ | |
| APPLE_ID \ | |
| APPLE_PASSWORD \ | |
| APPLE_TEAM_ID; do | |
| if [ -z "${!name}" ]; then | |
| missing+=("$name") | |
| fi | |
| done | |
| if [ "${#missing[@]}" -gt 0 ]; then | |
| echo "::error::Missing required staged release secrets: ${missing[*]}" | |
| exit 1 | |
| fi | |
| - name: Install dependencies | |
| run: | | |
| pnpm install --frozen-lockfile | |
| cd apps/staged/src-tauri && cargo fetch | |
| - name: Build staged release config | |
| working-directory: apps/staged | |
| env: | |
| STAGED_UPDATER_PUBLIC_KEY: ${{ secrets.STAGED_UPDATER_PUBLIC_KEY }} | |
| STAGED_UPDATER_ENDPOINT: https://github.com/${{ github.repository }}/releases/download/staged-latest/latest.json | |
| APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} | |
| run: pnpm run tauri:release:config | |
| - name: Build and publish staged release | |
| uses: tauri-apps/tauri-action@fce9c6108b31ea247710505d3aaaa893ee6768d4 # 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 }} | |
| APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} | |
| APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | |
| APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} | |
| APPLE_ID: ${{ secrets.APPLE_ID }} | |
| APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} | |
| APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
| VITE_UPDATER_ENABLED: 'true' | |
| with: | |
| projectPath: apps/staged | |
| tagName: ${{ github.ref_name }} | |
| releaseName: Staged ${{ github.ref_name }} | |
| releaseBody: See the assets to download and install this version. | |
| releaseDraft: false | |
| prerelease: false | |
| args: --target aarch64-apple-darwin --config src-tauri/tauri.release.conf.json | |
| - name: Publish staged updater alias | |
| working-directory: apps/staged | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| GITHUB_REPOSITORY: ${{ github.repository }} | |
| run: pnpm run release:updater:publish | |
| - name: Publish staged DMG alias | |
| working-directory: apps/staged | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| GITHUB_REPOSITORY: ${{ github.repository }} | |
| run: pnpm run release:dmg:publish |