name: macOS

on:
  push:
    branches:
        - master
    paths-ignore:
    - 'docs/**'
    - '.github/workflows/**'
    - '!.github/workflows/test_macos.yml'
  pull_request:
  workflow_dispatch:

jobs:
  macOS:
    runs-on: macos-13
    steps:
    - name: Checkout repository
      uses: actions/checkout@v3
    - name: Install gtest
      run: |
        brew install googletest
    - name: Install dependencies
      run: |
        # sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.15.pkg -target /
        brew update
        brew upgrade || true
        brew install --cask xquartz
        brew install udunits openmotif maven
        brew install swig
        wget https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/clang+llvm-15.0.7-x86_64-apple-darwin21.0.tar.xz
        tar -xvf clang+llvm-15.0.7-x86_64-apple-darwin21.0.tar.xz
    - name: Build Trick
      run: |
        export MAKEFLAGS=-j4
        ./configure --with-llvm=${GITHUB_WORKSPACE}/clang+llvm-15.0.7-x86_64-apple-darwin21.0
        make
    - name: Test
      run: |
        cd share/trick/trickops/
        python3 -m venv .venv && source .venv/bin/activate && pip3 install -r requirements.txt
        export MAKEFLAGS=-j4
        cd ../../../; make test
    - name: Upload Tests
      uses: actions/upload-artifact@v3.0.0
      if: success() || failure()    # run this step even if previous step failed
      with:
        name: Trick_macos
        path: trick_test/*.xml
        retention-days: 1
