name: Build
on:
    pull_request: {}
    push:
        branches: [develop, master]
# develop pushes and repository_dispatch handled in build_develop.yaml
env:
    # These must be set for fetchdep.sh to get the right branch
    REPOSITORY: ${{ github.repository }}
    PR_NUMBER: ${{ github.event.pull_request.number }}
jobs:
    build:
        name: "Build on ${{ matrix.image }}"
        # We build on all 3 platforms to ensure we don't have any OS-specific build incompatibilities
        strategy:
            fail-fast: false
            matrix:
                image:
                    - ubuntu-latest
                    - windows-latest
                    - macos-latest
                isDevelop:
                    - ${{ github.event_name == 'push' && github.ref_name == 'develop' }}
                # Skip the ubuntu-latest build for the develop branch as the dedicated CD build_develop workflow handles that
                exclude:
                    - isDevelop: true
                      image: ubuntu-latest
        runs-on: ${{ matrix.image }}
        defaults:
            run:
                shell: bash
        steps:
            - uses: actions/checkout@v4

            - uses: actions/setup-node@v3
              with:
                  cache: "yarn"

            - name: Install Dependencies
              run: "./scripts/layered.sh"

            - name: Build
              run: "yarn build"
