name: Publish

on: workflow_dispatch

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

    strategy:
      matrix:
        include:
          - os: macos-14
            opt: '--mac'
            dist: 'dist-macOS-arm'

          - os: macos-13
            opt: '--mac'
            dist: 'dist-macOS-x86_64'

          - os: ubuntu-latest
            opt: '--linux'
            dist: 'dist-linux'

          - os: windows-2019
            opt: '--win'
            dist: 'dist-windows'

    steps:
      - name: Setup node
        uses: actions/setup-node@v2
        with:
          node-version: '18.19.0'

      - name: Checkout Books
        uses: actions/checkout@v2

      - name: Install Dependencies
        run: |
          yarn set version 1.22.18
          yarn

      - name: Set Error Log Creds
        env:
          ERR_LOG_KEY: ${{ secrets.ERR_LOG_KEY }}
          ERR_LOG_URL: ${{ secrets.ERR_LOG_URL }}
          ERR_LOG_SECRET: ${{ secrets.ERR_LOG_SECRET }}
          TELEMETRY_URL: ${{ secrets.TELEMETRY_URL }}
        run: |
          echo $ERR_LOG_KEY > log_creds.txt
          echo $ERR_LOG_SECRET >> log_creds.txt
          echo $ERR_LOG_URL >> log_creds.txt
          echo $TELEMETRY_URL >> log_creds.txt

      - name: Run build
        env:
          APPLE_ID: ${{ secrets.APPLE_ID }}
          APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_PASSWORD }}
          APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
          CSC_LINK: ${{ secrets.CSC_LINK }}
          CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
          CSC_IDENTITY_AUTO_DISCOVERY: true
          GH_TOKEN: ${{ secrets.GH_TOKEN }}
        run: |
          yarn set version 1.22.18
          yarn build ${{ matrix.opt }} --publish always

      - name: Tar files
        run: tar -cvf dist.tar dist_electron

      - name: Upload Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: ${{ matrix.dist }}
          path: dist.tar
