chore: release v5.64.0 #6
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: Release Desktop | |
| # Runs on the same version tags as the web release workflow. The existing | |
| # release.yml creates the GitHub Release + changelog; this workflow builds the | |
| # desktop apps for all three OSes and uploads them to that release, then bumps | |
| # the Homebrew Cask. Unsigned by design (CSC_IDENTITY_AUTO_DISCOVERY=false). | |
| on: | |
| push: | |
| tags: ['v*.*.*'] | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: macos-latest | |
| args: "--mac --arm64 --x64" | |
| - os: windows-latest | |
| args: "--win" | |
| - os: ubuntu-latest | |
| args: "--linux" | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - run: npm ci | |
| - name: Build & publish desktop app | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| CSC_IDENTITY_AUTO_DISCOVERY: 'false' | |
| run: npx electron-builder ${{ matrix.args }} --publish always | |
| bump-cask: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Update Homebrew tap cask (skips if HOMEBREW_TAP_TOKEN not set) | |
| env: | |
| TAP_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }} | |
| run: | | |
| set -euo pipefail | |
| if [ -z "${TAP_TOKEN:-}" ]; then | |
| echo "HOMEBREW_TAP_TOKEN not set — skipping cask bump. See homebrew-tap/README.md to enable the tap." | |
| exit 0 | |
| fi | |
| VERSION="${GITHUB_REF_NAME#v}" | |
| BASE="https://github.com/${GITHUB_REPOSITORY}/releases/download/${GITHUB_REF_NAME}" | |
| curl -fL "$BASE/claude-code-studio-${VERSION}-arm64.dmg" -o arm64.dmg | |
| curl -fL "$BASE/claude-code-studio-${VERSION}-x64.dmg" -o x64.dmg | |
| ARM_SHA="$(shasum -a 256 arm64.dmg | awk '{print $1}')" | |
| X64_SHA="$(shasum -a 256 x64.dmg | awk '{print $1}')" | |
| git clone "https://x-access-token:${TAP_TOKEN}@github.com/${GITHUB_REPOSITORY_OWNER}/homebrew-claude-code-studio.git" tap | |
| CASK="tap/Casks/claude-code-studio.rb" | |
| sed -i -E "s/^ version \".*\"/ version \"${VERSION}\"/" "$CASK" | |
| sed -i -E "s/(arm:[[:space:]]*\")[a-f0-9]{64}/\1${ARM_SHA}/" "$CASK" | |
| sed -i -E "s/(intel:[[:space:]]*\")[a-f0-9]{64}/\1${X64_SHA}/" "$CASK" | |
| cd tap | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| git add Casks/claude-code-studio.rb | |
| git commit -m "chore: claude-code-studio ${VERSION}" || echo "cask unchanged" | |
| git push |