name: macos

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

# Set permissions at the job level.
permissions: {}

jobs:
  macos:
    runs-on: macos-12
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v3
        with:
          persist-credentials: false
      - uses: actions/setup-python@v4
        with:
          python-version: '3.9'
      - name: Install dependencies
        run: |
          python -m pip install --upgrade meson PyYAML
          brew install libxml2 bison ninja graphviz
          # HACK: force Doxygen version 1.9.6, because 1.9.7 breaks our cool URIs.
          curl -O https://raw.githubusercontent.com/Homebrew/homebrew-core/d2267b9f2ad247bc9c8273eb755b39566a474a70/Formula/doxygen.rb
          brew install --formula doxygen.rb
          rm doxygen.rb
          brew link bison --force
        env:
          HOMEBREW_NO_AUTO_UPDATE: 1
          HOMEBREW_NO_INSTALL_CLEANUP: 1
      - name: Setup
        run: |
          PATH="/usr/local/opt/bison/bin:${PATH}" meson setup -Denable-wayland=false -Denable-x11=false build
      - name: Build
        run: |
          PATH="/usr/local/opt/bison/bin:${PATH}" meson compile -C build
      - name: Test
        run:
          meson test -C build --print-errorlogs
