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