name: 检查 Pull Request 内容

on:
  pull_request:
    branches-ignore:
      - 'all-contributors/add-**'

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

    strategy:
      matrix:
        os: [windows-latest, macos-latest, ubuntu-latest]
        node-version: [20.x]

    steps:
      - name: Checkout
        uses: actions/checkout@v4.1.7

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}

      - name: Install dependencies
        run: yarn install

      - name: Build and package for Windows
        if: matrix.os == 'windows-latest'
        run: yarn build:win

      - name: Build and package for macOS
        if: matrix.os == 'macos-latest'
        run: yarn build:mac

      - name: Build and package for Linux
        if: matrix.os == 'ubuntu-latest'
        run: yarn build:linux

      - name: Upload artifact for Windows
        if: matrix.os == 'windows-latest'
        uses: actions/upload-artifact@v4
        with:
          name: ExamShowboard-Windows
          path: dist/*.exe

      - name: Upload artifact for macOS
        if: matrix.os == 'macos-latest'
        uses: actions/upload-artifact@v4
        with:
          name: ExamShowboard-macOS
          path: dist/*.dmg

      - name: Upload artifact for Linux
        if: matrix.os == 'ubuntu-latest'
        uses: actions/upload-artifact@v4
        with:
          name: ExamShowboard-Linux
          path: dist/*.AppImage
