| name: linux-ci |
| |
| on: |
| push: |
| branches: [ main ] |
| tags: ["*.*.*"] |
| pull_request: |
| branches: [ main ] |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| build: |
| runs-on: ubuntu-20.04 |
| |
| steps: |
| - name: Checkout |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 |
| - name: Setup Ccache |
| uses: hendrikmuhs/ccache-action@ed74d11c0b343532753ecead8a951bb09bb34bc9 # v1.2.14 |
| with: |
| key: ${{ github.job }}-${{ runner.os }}-${{ runner.arch }} |
| - name: Install Dependencies |
| run: | |
| sudo apt-get update |
| sudo apt-get install \ |
| gcc \ |
| gobject-introspection \ |
| gtk-doc-tools \ |
| libcairo2-dev \ |
| libfreetype6-dev \ |
| libgirepository1.0-dev \ |
| libglib2.0-dev \ |
| libgraphite2-dev \ |
| libicu-dev \ |
| ninja-build \ |
| pkg-config \ |
| python3 \ |
| python3-setuptools |
| - name: Setup Python |
| uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 |
| with: |
| python-version: '3.x' |
| - name: Install Python Dependencies |
| run: sudo pip3 install -r .ci/requirements.txt --require-hashes |
| - name: Setup Meson |
| run: | |
| ccache --version |
| meson setup build \ |
| -Dauto_features=enabled \ |
| -Dchafa=disabled \ |
| -Dgraphite=enabled \ |
| -Doptimization=2 \ |
| -Db_coverage=true \ |
| -Ddoc_tests=true \ |
| -Dragel_subproject=true |
| - name: Build |
| run: meson compile -Cbuild |
| - name: Test |
| run: meson test --print-errorlogs -Cbuild |
| - name: Generate Documentations |
| run: ninja -Cbuild harfbuzz-doc |
| - name: Deploy Documentations |
| if: github.ref_type == 'tag' |
| run: .ci/deploy-docs.sh |
| env: |
| GH_TOKEN: ${{ secrets.GH_TOKEN }} |
| REVISION: ${{ github.sha }} |
| - name: Generate Coverage |
| run: ninja -Cbuild coverage-xml |
| - name: Upload Coverage |
| uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0 |
| with: |
| token: ${{ secrets.CODECOV_TOKEN }} |
| file: build/meson-logs/coverage.xml |