name: macos concurrency: group: macos-${{ github.head_ref }} cancel-in-progress: true on: push: paths: - "mesonbuild/**" - "test cases/**" - "unittests/**" - ".github/workflows/macos.yml" - "run_unittests.py" pull_request: paths: - "mesonbuild/**" - "test cases/**" - "unittests/**" - ".github/workflows/macos.yml" - "run_unittests.py" permissions: contents: read jobs: unittests-appleclang: runs-on: macos-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: '3.x' - run: | python -m pip install --upgrade pip python -m pip install pytest pytest-xdist pytest-subtests jsonschema coverage codecov # Use llvm-14 for now to fix llvm framework static tests, see # https://github.com/Homebrew/discussions/discussions/3666#discussioncomment-3681821 - run: brew install pkg-config ninja llvm@14 qt@5 - env: CPPFLAGS: "-I/usr/local/include" LDFLAGS: "-L/usr/local/lib" MESON_CI_JOBNAME: unittests-appleclang MESON_UNIT_TEST_BACKEND: ninja # These cannot evaluate anything, so we cannot set PATH or SDKROOT here run: | export SDKROOT="$(xcodebuild -version -sdk macosx Path)" export PATH="$HOME/tools:/usr/local/opt/qt@5/bin:$PATH:$(brew --prefix llvm@14)/bin" export PKG_CONFIG_PATH="/usr/local/opt/qt@5/lib/pkgconfig:$PKG_CONFIG_PATH" ./tools/run_with_cov.py ./run_unittests.py - name: Upload coverage report run: ./ci/upload_cov.sh "appleclang [unit tests]" project-tests-appleclang: runs-on: macos-latest strategy: fail-fast: false matrix: include: - NAME: macos-clang unity: off - NAME: macos-clang-unity unity: on name: ${{ matrix.NAME }} env: MESON_CI_JOBNAME: ${{ matrix.NAME }} steps: - uses: actions/checkout@v2 # use python3 from homebrew because it is a valid framework, unlike the actions one: # https://github.com/actions/setup-python/issues/58 # Use llvm-14 for now to fix llvm framework static tests, see # https://github.com/Homebrew/discussions/discussions/3666#discussioncomment-3681821 - run: brew install pkg-config ninja llvm@14 qt@5 boost ldc hdf5 openmpi lapack scalapack sdl2 python3 boost-python3 gtk-doc - run: | python3 -m pip install --upgrade setuptools python3 -m pip install --upgrade pip python3 -m pip install cython coverage codecov - env: CPPFLAGS: "-I/usr/local/include" LDFLAGS: "-L/usr/local/lib" MESON_ARGS: --unity=${{ matrix.unity }} CI: 1 # These cannot evaluate anything, so we cannot set PATH or SDKROOT here run: | export SDKROOT="$(xcodebuild -version -sdk macosx Path)" export PATH="$HOME/tools:/usr/local/opt/qt@5/bin:$PATH:$(brew --prefix llvm@14)/bin" export PKG_CONFIG_PATH="/usr/local/opt/qt@5/lib/pkgconfig:$PKG_CONFIG_PATH" export XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./tools/run_with_cov.py ./run_project_tests.py --backend=ninja - name: Upload coverage report run: ./ci/upload_cov.sh "appleclang [project tests; unity=${{ matrix.unity }}]" Qt4_LLVM15_macos: runs-on: macos-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: '3.x' - run: python -m pip install -e . - run: brew install pkg-config ninja gcc llvm - run: brew tap cartr/qt4 - run: brew install qt@4 - run: brew link qt@4 # qt4 tap seems to be broken - run: ln -sfn /usr/local/Cellar/qt@4/4.8.7_6.reinstall /usr/local/Cellar/qt@4/4.8.7_6 - run: meson setup "test cases/frameworks/4 qt" build_qt -Drequired=qt4 - run: meson compile -C build_qt - uses: actions/upload-artifact@v1 if: failure() with: name: Qt4_Mac_build path: build_qt/meson-logs/meson-log.txt - run: meson test -C build_qt -v - uses: actions/upload-artifact@v1 if: failure() with: name: Qt4_Mac_test path: build_qt/meson-logs/testlog.txt # llvm-15 is broken, due to which static linking doesn't work # https://github.com/mesonbuild/meson/pull/10879#issuecomment-1264524936 - run: | export PATH="$PATH:$(brew --prefix llvm)/bin" meson setup "test cases/frameworks/15 llvm" build_llvm -Dlink-static=false -Dmethod=config-tool - run: meson compile -C build_llvm - uses: actions/upload-artifact@v1 if: failure() with: name: LLVM15_Mac_build path: build_llvm/meson-logs/meson-log.txt