1name: macos-ci 2 3on: 4 push: 5 branches: [ main ] 6 pull_request: 7 branches: [ main ] 8 9permissions: 10 contents: read 11 12jobs: 13 build: 14 runs-on: macos-latest 15 16 steps: 17 - name: Checkout 18 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 19 - name: Setup Ccache 20 uses: hendrikmuhs/ccache-action@ed74d11c0b343532753ecead8a951bb09bb34bc9 # v1.2.14 21 with: 22 key: ${{ github.job }}-${{ runner.os }}-${{ runner.arch }} 23 - name: Install Dependencies 24 run: | 25 export HOMEBREW_NO_AUTO_UPDATE=1 26 export HOMEBREW_NO_INSTALL_CLEANUP=1 27 brew rm -f pkg-config@0.29.2 28 brew install \ 29 cairo \ 30 freetype \ 31 glib \ 32 gobject-introspection \ 33 graphite2 \ 34 icu4c \ 35 meson \ 36 ninja \ 37 pkgconf 38 - name: Setup Python 39 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 40 with: 41 python-version: '3.12' 42 - name: Install Python Dependencies 43 run: pip3 install -r .ci/requirements.txt --require-hashes 44 - name: Setup Meson 45 env: 46 PKG_CONFIG_PATH: "/usr/local/opt/libffi/lib/pkgconfig" 47 run: | 48 brew link --force icu4c 49 ccache --version 50 meson setup build \ 51 -Dauto_features=enabled \ 52 -Ddocs=disabled \ 53 -Dchafa=disabled \ 54 -Dcoretext=enabled \ 55 -Dgraphite=enabled \ 56 -Doptimization=2 \ 57 -Db_coverage=true \ 58 - name: Build 59 run: meson compile -Cbuild 60 - name: Test 61 run: meson test --print-errorlogs -Cbuild 62 - name: Generate Coverage 63 run: ninja -Cbuild coverage-xml 64 - name: Upload Coverage 65 uses: codecov/codecov-action@7f8b4b4bde536c465e797be725718b88c5d95e0e # v5.1.1 66 with: 67 token: ${{ secrets.CODECOV_TOKEN }} 68 file: build/meson-logs/coverage.xml 69