| name: macos-ci |
| |
| on: |
| push: |
| branches: [ main ] |
| pull_request: |
| branches: [ main ] |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| build: |
| runs-on: macos-latest |
| |
| steps: |
| - name: Checkout |
| uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 |
| - name: Setup Ccache |
| uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 # v1.2.13 |
| with: |
| key: ${{ github.job }}-${{ runner.os }}-${{ runner.arch }} |
| - name: Install Dependencies |
| run: | |
| export HOMEBREW_NO_AUTO_UPDATE=1 |
| export HOMEBREW_NO_INSTALL_CLEANUP=1 |
| brew install \ |
| cairo \ |
| freetype \ |
| glib \ |
| gobject-introspection \ |
| graphite2 \ |
| icu4c \ |
| meson \ |
| ninja \ |
| pkg-config |
| - name: Setup Python |
| uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 |
| with: |
| python-version: '3.x' |
| - name: Install Python Dependencies |
| run: pip3 install -r .ci/requirements.txt --require-hashes |
| - name: Setup Meson |
| env: |
| PKG_CONFIG_PATH: "/usr/local/opt/libffi/lib/pkgconfig" |
| run: | |
| brew link --force icu4c |
| ccache --version |
| meson setup build \ |
| -Dauto_features=enabled \ |
| -Ddocs=disabled \ |
| -Dchafa=disabled \ |
| -Dcoretext=enabled \ |
| -Dgraphite=enabled \ |
| -Doptimization=2 \ |
| -Db_coverage=true \ |
| - name: Build |
| run: meson compile -Cbuild |
| - name: Test |
| run: meson test --print-errorlogs -Cbuild |
| - name: Generate Coverage |
| run: ninja -Cbuild coverage-xml |
| - name: Upload Coverage |
| uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 |
| with: |
| file: build/meson-logs/coverage.xml |