Skip to content

PRD-005: Post-Build Iteration & Agent Quality (v0.4.0) #22

PRD-005: Post-Build Iteration & Agent Quality (v0.4.0)

PRD-005: Post-Build Iteration & Agent Quality (v0.4.0) #22

Workflow file for this run

name: Build & Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
cmd: dist:win
artifact_glob: |
release/*.exe
release/*.blockmap
release/latest.yml
- os: macos-latest
cmd: dist:mac
artifact_glob: |
release/*.dmg
release/*.zip
release/*.blockmap
release/latest-mac.yml
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 20
cache: npm
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Package installer
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Mac code signing (only on macOS runner)
CSC_LINK: ${{ runner.os == 'macOS' && secrets.MAC_CSC_LINK || '' }}
CSC_KEY_PASSWORD: ${{ runner.os == 'macOS' && secrets.MAC_CSC_KEY_PASSWORD || '' }}
# Mac notarization — disabled until Apple clears first-time submissions
# Re-enable by uncommenting these lines:
# APPLE_ID: ${{ runner.os == 'macOS' && secrets.APPLE_ID || '' }}
# APPLE_APP_SPECIFIC_PASSWORD: ${{ runner.os == 'macOS' && secrets.APPLE_APP_SPECIFIC_PASSWORD || '' }}
# APPLE_TEAM_ID: ${{ runner.os == 'macOS' && secrets.APPLE_TEAM_ID || '' }}
# Windows code signing (only on Windows runner)
WIN_CSC_LINK: ${{ runner.os == 'Windows' && secrets.WIN_CSC_LINK || '' }}
WIN_CSC_KEY_PASSWORD: ${{ runner.os == 'Windows' && secrets.WIN_CSC_KEY_PASSWORD || '' }}
run: node node_modules/electron-builder/out/cli/cli.js --${{ runner.os == 'macOS' && 'mac' || 'win' }}
- name: Upload artifacts
uses: actions/upload-artifact@v7
with:
name: release-${{ matrix.os }}
path: ${{ matrix.artifact_glob }}
if-no-files-found: error
release:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v8
with:
path: artifacts
merge-multiple: true
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
files: artifacts/*
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}