New icon: metallic dark gray #10
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 | |
| 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 |