Use matrix to test on macos builtin python, github actions python and… #5
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 | ||
strategy: | ||
matrix: | ||
include: | ||
- python: homebrew | ||
- python: osx-builtin | ||
- python: github-action | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Install Python with setup-python action | ||
if: ${{ matrix.python }} == "github-action" | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.x' | ||
- name: Install Homebrew Python | ||
if: ${{ matrix.python }} == "homebrew" | ||
run: | | ||
eval "$(brew shellenv)" | ||
echo HOMEBREW_PREFIX="$HOMEBREW_PREFIX" >> $GITHUB_ENV | ||
echo HOMEBREW_REPOSITORY="$HOMEBREW_REPOSITORY" >> $GITHUB_ENV | ||
echo HOMEBREW_CELLAR="$HOMEBREW_CELLAR" >> $GITHUB_ENV | ||
echo PATH="$PATH" >> $GITHUB_ENV | ||
echo MANPATH="$MANPATH" >> $GITHUB_ENV | ||
echo INFOPATH="$INFOPATH" >> $GITHUB_ENV | ||
brew install python@3 | ||
- 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: ${{ job.name }} | ||
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: | ||
- unity: clang-unity | ||
- unity: clang | ||
- python: homebrew | ||
- python: osx-builtin | ||
- python: github-action | ||
name: Mac OSX Project, Python from ${{python}}, compiler ${{unity}} | ||
Check failure on line 95 in .github/workflows/macos.yml GitHub Actions / macosInvalid workflow file
|
||
env: | ||
MESON_CI_JOBNAME: ${{ job.name }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Install Python with setup-python action | ||
if: ${{ matrix.python }} == "github-action" | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.x' | ||
- name: Install Homebrew Python | ||
if: ${{ matrix.python }} == "homebrew" | ||
run: | | ||
eval "$(brew shellenv)" | ||
echo HOMEBREW_PREFIX="$HOMEBREW_PREFIX" >> $GITHUB_ENV | ||
echo HOMEBREW_REPOSITORY="$HOMEBREW_REPOSITORY" >> $GITHUB_ENV | ||
echo HOMEBREW_CELLAR="$HOMEBREW_CELLAR" >> $GITHUB_ENV | ||
echo PATH="$PATH" >> $GITHUB_ENV | ||
echo MANPATH="$MANPATH" >> $GITHUB_ENV | ||
echo INFOPATH="$INFOPATH" >> $GITHUB_ENV | ||
brew install python@3 | ||
- 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 |