name: macOS CI

on: [pull_request]

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

    env:
      CTEST_OUTPUT_ON_FAILURE: ON
      CTEST_PARALLEL_LEVEL: 2
      CMAKE_BUILD_TYPE: ${{ matrix.build_type }}
      GTSAM_BUILD_UNSTABLE: ${{ matrix.build_unstable }}

    strategy:
      fail-fast: false
      matrix:
        # Github Actions requires a single row to be added to the build matrix.
        # See https://help.github.com/en/articles/workflow-syntax-for-github-actions.
        name: [
          macos-11-xcode-13.4.1,
        ]

        build_type: [Debug, Release]
        build_unstable: [ON]
        include:
          - name: macos-11-xcode-13.4.1
            os: macos-11
            compiler: xcode
            version: "13.4.1"

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

      - name: Install Dependencies
        run: |
          brew install cmake ninja
          brew install boost
          if [ "${{ matrix.compiler }}" = "gcc" ]; then
            brew install gcc@${{ matrix.version }}
            echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV
            echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV
          else
            sudo xcode-select -switch /Applications/Xcode.app
            echo "CC=clang" >> $GITHUB_ENV
            echo "CXX=clang++" >> $GITHUB_ENV
          fi
      - name: Build and Test
        run: bash .github/scripts/unix.sh -t
