name: macos-build
on:
  push:
    branches:
      - 'master'
  pull_request:
    types: ['labeled', 'opened', 'synchronize', 'reopened']

concurrency:
  group: ${{ github.head_ref }} || concat(${{ github.ref }}, ${{ github.workflow }})
  cancel-in-progress: true

jobs:
  macos-build:
    strategy:
      fail-fast: false
      matrix:
        os:
          - macos-11
          - macos-12
    runs-on: ${{ matrix.os }}
    name: ${{ matrix.os }}
    if: |
      github.repository == 'azerothcore/azerothcore-wotlk'
      && !github.event.pull_request.draft
      && (github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'run-build') || github.event.label.name == 'run-build')
    steps:
      - uses: actions/checkout@v4
      - name: Cache
        uses: actions/cache@v3
        with:
          path: ~/Library/Caches/ccache
          key: ccache:${{ matrix.os }}:${{ github.ref }}:${{ github.sha }}
          restore-keys: |
            ccache:${{ matrix.os }}:${{ github.ref }}
            ccache:${{ matrix.os }}
      - name: Install latest bash
        run: brew install bash
      - name: Configure OS
        run: source ./acore.sh install-deps
      - name: Build
        run: source ./apps/ci/mac/ci-compile.sh
      - name: Run unit tests
        run: source ./apps/ci/ci-run-unit-tests.sh