name: Build/release on: push jobs: publish: runs-on: ${{ matrix.os }} if: ${{ startsWith(github.ref, 'refs/tags/v') || contains(github.event.head_commit.message, '#build') }} permissions: contents: write strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] #os: [macos-latest, windows-latest] steps: - name: Check out Git repository uses: actions/checkout@v1 - name: Install Node.js, NPM and Yarn uses: actions/setup-node@v1 with: node-version: 18 - name: Prepare for app notarization if: startsWith(matrix.os, 'macos') # Import Apple API key for app notarization on macOS run: | mkdir -p ~/private_keys/ echo '${{ secrets.apple_api_key }}' > ~/private_keys/AuthKey.p8 - name: Build/release Electron app #continue-on-error: true uses: samuelmeuli/action-electron-builder@v1 with: # Specify electron-builder config file args: -c electron-builder.json5 # NPM script to execute before electron-builder build_script_name: prebuild # GitHub token, automatically provided to the action # (No need to define this secret in the repo settings) github_token: ${{ secrets.github_token }} # Used for mac signing mac_certs: ${{ secrets.mac_certs }} mac_certs_password: ${{ secrets.mac_certs_password }} # If the commit is tagged with a version (e.g. "v1.0.0"), # release the app after building #release: true release: ${{ startsWith(github.ref, 'refs/tags/v') }} env: # macOS notarization API key APPLE_API_KEY: ~/private_keys/AuthKey.p8 APPLE_API_KEY_ID: ${{ secrets.apple_api_key_id }} APPLE_API_KEY_ISSUER: ${{ secrets.apple_api_key_issuer_id }} #- name: Print notarization-error.log # run: cat notarization-error.log - name: Upload Linux artifact if: ${{ matrix.os == 'ubuntu-latest' }} uses: actions/upload-artifact@v3 with: name: heynote-linux-${{ github.sha }} path: release/*/Heynote_*.AppImage retention-days: 30 - name: Upload Mac artifact if: ${{ matrix.os == 'macos-latest' }} uses: actions/upload-artifact@v3 with: name: heynote-mac-arm64-${{ github.sha }} path: release/*/Heynote_*_arm64.dmg retention-days: 30 - name: Upload Windows artifact if: ${{ matrix.os == 'windows-latest' }} uses: actions/upload-artifact@v3 with: name: heynote-windows-${{ github.sha }} path: release/*/Heynote_*.exe retention-days: 30