ci: bump release workflow to Node 22 so upstream presonus-studiolive-… #3
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: Build and Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| permissions: | |
| contents: write | |
| jobs: | |
| build-mac: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - name: Clone and build presonus-studiolive-api | |
| run: | | |
| cd "$GITHUB_WORKSPACE/.." | |
| git clone https://github.com/featherbear/presonus-studiolive-api.git | |
| cd presonus-studiolive-api && npm install && npm run build | |
| - name: Install app dependencies | |
| run: npm install | |
| - name: Build application | |
| run: npm run build | |
| - name: Prepare dependency for electron-builder | |
| run: | | |
| DEPS_DIR="$GITHUB_WORKSPACE/../presonus-studiolive-api" | |
| rm -rf node_modules/presonus-studiolive-api | |
| mkdir -p node_modules/presonus-studiolive-api | |
| cp -r "$DEPS_DIR/dist" node_modules/presonus-studiolive-api/ | |
| cp "$DEPS_DIR/package.json" node_modules/presonus-studiolive-api/ | |
| [ -d "$DEPS_DIR/node_modules" ] && cp -r "$DEPS_DIR/node_modules" node_modules/presonus-studiolive-api/ || true | |
| - name: Build macOS packages | |
| env: | |
| APPLE_ID: ${{ secrets.APPLE_ID }} | |
| APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} | |
| APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
| CSC_LINK: ${{ secrets.CSC_LINK }} | |
| CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} | |
| run: | | |
| if [ -n "$CSC_LINK" ]; then | |
| NODE_OPTIONS=--max-old-space-size=8192 npx electron-builder --mac | |
| else | |
| echo "No signing credentials — building unsigned" | |
| CSC_IDENTITY_AUTO_DISCOVERY=false NODE_OPTIONS=--max-old-space-size=8192 npx electron-builder --mac | |
| fi | |
| - name: Upload macOS release assets | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| draft: true | |
| files: | | |
| release/*.dmg | |
| release/*-mac.zip | |
| build-win: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - name: Clone and build presonus-studiolive-api | |
| shell: bash | |
| run: | | |
| cd "$GITHUB_WORKSPACE/.." | |
| git clone https://github.com/featherbear/presonus-studiolive-api.git | |
| cd presonus-studiolive-api && npm install && npm run build | |
| - name: Install app dependencies | |
| run: npm install | |
| # npm scripts use Unix shell commands so we bypass npm run build | |
| # and replicate the steps directly through bash | |
| - name: Build TypeScript | |
| shell: bash | |
| run: npx tsc -p tsconfig.main.json | |
| - name: Copy assets | |
| shell: bash | |
| run: | | |
| mkdir -p dist/renderer | |
| cp src/renderer/index.html dist/renderer/ | |
| node -e "const fs=require('fs'),p='dist/renderer/index.html',v=require('./package.json').version;fs.writeFileSync(p,fs.readFileSync(p,'utf8').replace(/id=\"status-version\">[^<]*/,'id=\"status-version\">'+v))" | |
| mkdir -p dist/renderer/icons | |
| cp assets/icons/*.svg assets/icons/*.png dist/renderer/icons/ 2>/dev/null || true | |
| mkdir -p dist/assets | |
| cp assets/icon.icns assets/icon.png dist/assets/ 2>/dev/null || true | |
| - name: Prepare dependency for electron-builder | |
| shell: bash | |
| run: | | |
| DEPS_DIR="$GITHUB_WORKSPACE/../presonus-studiolive-api" | |
| rm -rf node_modules/presonus-studiolive-api | |
| mkdir -p node_modules/presonus-studiolive-api | |
| cp -r "$DEPS_DIR/dist" node_modules/presonus-studiolive-api/ | |
| cp "$DEPS_DIR/package.json" node_modules/presonus-studiolive-api/ | |
| [ -d "$DEPS_DIR/node_modules" ] && cp -r "$DEPS_DIR/node_modules" node_modules/presonus-studiolive-api/ || true | |
| - name: Build Windows packages | |
| run: npx electron-builder --win | |
| env: | |
| NODE_OPTIONS: --max-old-space-size=8192 | |
| - name: Upload Windows release assets | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| draft: true | |
| files: | | |
| release/*.exe |