name: Release

on:
    push:
        tags:
            - v*
    workflow_dispatch:

jobs:
    release:
        runs-on: ${{ matrix.os }}

        strategy:
            matrix:
                os: [macos-latest, ubuntu-latest, windows-latest]
                include:
                    - os: macos-latest
                      platform: mac
                    - os: ubuntu-latest
                      platform: linux
                    - os: windows-latest
                      platform: windows

        steps:
            - uses: actions/checkout@v3
            - uses: pnpm/action-setup@v2 # Install pnpm using packageManager key in package.json

            - name: Use Node.js 18.18.2
              uses: actions/setup-node@v3
              with:
                  node-version: 18.18.2
                  cache: "pnpm"

            - name: Install dependencies
              run: pnpm install --frozen-lockfile

            - name: Build
              run: pnpm build

            - name: Run Electron Builder
              if: ${{ matrix.platform != 'mac' }}
              run: |
                  pnpm electron-builder --${{ matrix.platform }} --publish always
              env:
                  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                  
            - name: Run Electron Builder
              if: ${{ matrix.platform == 'mac' }}
              run: |
                  pnpm electron-builder --${{ matrix.platform }} --publish always
              env:
                  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                  CSC_LINK: ${{ secrets.APPLE_SIGNING_CERT }}