name: Build/release

on: push

jobs:
  publish:
    runs-on: ${{ matrix.os }}
    if: ${{ startsWith(github.ref, 'refs/tags/v') }}
    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

