scan-build: Exclude subprojects from scan-build report #43
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
- 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: Aggregate coverage reports | |
run: ./ci/combine_cov.sh | |
- name: Upload coverage report | |
uses: codecov/codecov-action@v3 | |
with: | |
files: .coverage/coverage.xml | |
name: "appleclang [unit tests]" | |
fail_ci_if_error: false | |
verbose: true | |
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 | |
- 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: Aggregate coverage reports | |
run: ./ci/combine_cov.sh | |
- name: Upload coverage report | |
uses: codecov/codecov-action@v3 | |
with: | |
files: .coverage/coverage.xml | |
name: "appleclang [project tests; unity=${{ matrix.unity }}]" | |
fail_ci_if_error: false | |
verbose: true | |
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 |