name: Desktop release # Builds and publishes the Electron desktop app via electron-forge. # Generates a GitHub Release (draft) with installers + update manifests. # Triggered by a `desktop-v*` tag or manually. # # ⚠️ Until macOS code signing + notarization secrets are configured (see # frontend/docs/desktop-release.md), published builds are UNSIGNED and will # NOT auto-update on macOS. The workflow still produces installable artifacts. on: push: tags: - "desktop-v*" workflow_dispatch: jobs: release: runs-on: macos-latest permissions: contents: write defaults: run: working-directory: frontend steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: npm cache-dependency-path: frontend/package-lock.json - run: npm ci - name: Publish run: npm run publish env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # macOS signing + notarization — add as repository secrets and # set osxSign/osxNotarize in forge.config.ts to enable. CSC_LINK: ${{ secrets.CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}