123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- name: macos
- concurrency:
- group: macos-${{ github.head_ref || github.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@v3
- - uses: actions/setup-python@v4
- with:
- python-version: '3.x'
- - run: |
- python -m pip install --upgrade pip
- python -m pip install pytest pytest-xdist pytest-subtests jsonschema coverage codecov
- - run: brew install pkg-config ninja llvm 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)/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@v3
- # Avoid picking up an older version of LLVM that does not work.
- - run: brew update
- # github actions overwrites brew's python. Force it to reassert itself, by running in a separate step.
- - name: unbreak python in github actions
- run: |
- find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete
- sudo rm -rf /Library/Frameworks/Python.framework/
- brew install --force python3 && brew unlink python3 && brew unlink python3 && brew link --overwrite python3
- # use python3 from homebrew because it is a valid framework, unlike the actions one:
- # https://github.com/actions/setup-python/issues/58
- - run: brew install pkg-config ninja llvm qt@5 boost ldc hdf5 openmpi lapack scalapack sdl2 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)/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 }}]"
- Qt4macos:
- runs-on: macos-latest
- steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-python@v4
- with:
- python-version: '3.x'
- - run: python -m pip install -e .
- - run: brew install pkg-config ninja gcc
- - 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 -Drequired=qt4
- - run: meson compile -C build
- - uses: actions/upload-artifact@v3
- if: failure()
- with:
- name: Qt4_Mac_build
- path: build/meson-logs/meson-log.txt
- - run: meson test -C build -v
- - uses: actions/upload-artifact@v3
- if: failure()
- with:
- name: Qt4_Mac_test
- path: build/meson-logs/testlog.txt
|