aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/macos.yml
blob: df303717a6e0c2c0edbb264669a19f0cad31f3e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
name: macos

on:
  push:
    paths:
      - "mesonbuild/**"
      - "test cases/**"
      - ".github/workflows/macos.yml"
      - "run_unittests.py"
  pull_request:
    paths:
      - "mesonbuild/**"
      - "test cases/**"
      - ".github/workflows/macos.yml"
      - "run_unittests.py"

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 jsonschema coverage codecov
    - run: brew install pkg-config ninja llvm qt@5
    - env:
        CPPFLAGS: "-I/usr/local/include"
        LDFLAGS: "-L/usr/local/lib"
        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@v2
    # 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 python3
    - 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"
        ./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@v2
    - uses: actions/setup-python@v2
      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: meson setup "test cases/frameworks/4 qt" build -Drequired=qt4
    - run: meson compile -C build
    - uses: actions/upload-artifact@v1
      if: failure()
      with:
        name: Qt4_Mac_build
        path: build/meson-logs/meson-log.txt
    - run: meson test -C build -v
    - uses: actions/upload-artifact@v1
      if: failure()
      with:
        name: Qt4_Mac_test
        path: build/meson-logs/testlog.txt