Skip to content

New icon: metallic dark gray #10

New icon: metallic dark gray

New icon: metallic dark gray #10

Workflow file for this run

name: release
on:
push:
tags:
- 'v*'
workflow_dispatch:
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
platform: mac
- os: windows-latest
platform: win
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 20
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
id: install
run: npm ci
continue-on-error: true
- name: Install dependencies (fallback)
if: steps.install.outcome == 'failure'
run: npm install
- name: Fetch ffmpeg (mac)
if: matrix.platform == 'mac'
run: bash scripts/fetch-ffmpeg.sh
- name: Fetch ffmpeg (win)
if: matrix.platform == 'win'
shell: powershell
run: powershell -ExecutionPolicy Bypass -File scripts/fetch-ffmpeg.ps1
- name: Build app bundles
run: npx electron-vite build
- name: Resolve signing secrets
if: matrix.platform == 'mac'
env:
P12_B64: ${{ secrets.CSC_MAC_P12 }}
P12_PASS: ${{ secrets.CSC_MAC_PASSWORD }}
APPLE_ID_S: ${{ secrets.APPLE_ID }}
APPLE_PW_S: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_S: ${{ secrets.APPLE_TEAM_ID }}
run: |
if [ -n "$P12_B64" ]; then
echo "CSC_LINK=$P12_B64" >> "$GITHUB_ENV"
echo "CSC_KEY_PASSWORD=$P12_PASS" >> "$GITHUB_ENV"
echo "Developer ID signing enabled"
else
echo "CSC_MAC_P12 secret not set — falling back to ad-hoc signing"
fi
if [ -n "$APPLE_ID_S" ]; then
echo "APPLE_ID=$APPLE_ID_S" >> "$GITHUB_ENV"
echo "APPLE_APP_SPECIFIC_PASSWORD=$APPLE_PW_S" >> "$GITHUB_ENV"
echo "APPLE_TEAM_ID=$APPLE_TEAM_S" >> "$GITHUB_ENV"
echo "Notarization enabled"
else
echo "APPLE_ID secret not set — skipping notarization"
fi
- name: Package (release)
if: startsWith(github.ref, 'refs/tags/v')
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx electron-builder --${{ matrix.platform }} --publish always
- name: Package (on demand)
if: github.event_name == 'workflow_dispatch'
run: npx electron-builder --${{ matrix.platform }} --publish never
- name: Upload artifacts
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: stemkit-${{ matrix.platform }}
path: |
release/*.dmg
release/*.exe
release/*.zip
if-no-files-found: error