Skip to content

chore: release v2.0.0-beta.4 #1

chore: release v2.0.0-beta.4

chore: release v2.0.0-beta.4 #1

Workflow file for this run

name: Release Desktop
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
draft:
description: 'Create as draft release'
required: false
default: 'true'
type: choice
options:
- 'true'
- 'false'
concurrency:
group: release-desktop-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: write
jobs:
build-desktop:
name: Build Desktop (${{ matrix.target }})
strategy:
fail-fast: false
matrix:
include:
- platform: macos-latest
target: aarch64-apple-darwin
args: '--target aarch64-apple-darwin'
- platform: macos-latest
target: x86_64-apple-darwin
args: '--target x86_64-apple-darwin'
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'pnpm'
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: 'apps/desktop/src-tauri -> target'
key: ${{ matrix.target }}
- name: Install dependencies
run: pnpm install
- name: Build core package
run: pnpm --filter @ccem/core build
- name: Build and release
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# macOS code signing (optional — set these secrets to enable)
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
with:
projectPath: apps/desktop
tagName: v__VERSION__
releaseName: 'CCEM v__VERSION__'
releaseBody: |
## CCEM Desktop v__VERSION__
### Downloads
- **Apple Silicon (M1/M2/M3/M4)**: `CCEM-Desktop_*_aarch64.dmg`
- **Intel Mac**: `CCEM-Desktop_*_x64.dmg`
### CLI
```bash
npm install -g ccem@__VERSION__
```
releaseDraft: ${{ inputs.draft || 'true' }}
prerelease: ${{ contains(github.ref, 'beta') || contains(github.ref, 'alpha') }}
args: ${{ matrix.args }}
# Universal binary (optional — combines both architectures)
create-universal:
name: Create Universal Binary
needs: build-desktop
runs-on: macos-latest
if: ${{ !cancelled() && needs.build-desktop.result == 'success' }}
steps:
- name: Note
run: |
echo "Universal binary creation can be added later if needed."
echo "For now, both aarch64 and x86_64 DMGs are uploaded to the release."