1name: linux-ci 2 3on: 4 push: 5 branches: [ main ] 6 tags: ["*.*.*"] 7 pull_request: 8 branches: [ main ] 9 10permissions: 11 contents: read 12 13jobs: 14 build: 15 runs-on: ubuntu-20.04 16 17 steps: 18 - name: Checkout 19 uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 20 - name: Setup Ccache 21 uses: hendrikmuhs/ccache-action@6d1841ec156c39a52b1b23a810da917ab98da1f4 # v1.2.10 22 with: 23 key: ${{ github.job }}-${{ runner.os }}-${{ runner.arch }} 24 - name: Install Dependencies 25 run: | 26 sudo apt-get update 27 sudo apt-get install \ 28 gcc \ 29 gobject-introspection \ 30 gtk-doc-tools \ 31 libcairo2-dev \ 32 libfreetype6-dev \ 33 libgirepository1.0-dev \ 34 libglib2.0-dev \ 35 libgraphite2-dev \ 36 libicu-dev \ 37 ninja-build \ 38 pkg-config \ 39 python3 \ 40 python3-setuptools 41 - name: Install Python Dependencies 42 run: sudo pip3 install -r .ci/requirements.txt --require-hashes 43 - name: Setup Meson 44 run: | 45 ccache --version 46 meson setup build \ 47 -Dauto_features=enabled \ 48 -Dchafa=disabled \ 49 -Dgraphite=enabled \ 50 -Doptimization=2 \ 51 -Db_coverage=true \ 52 -Ddoc_tests=true \ 53 -Dragel_subproject=true 54 - name: Build 55 run: meson compile -Cbuild 56 - name: Test 57 run: meson test --print-errorlogs -Cbuild 58 - name: Generate Documentations 59 run: ninja -Cbuild harfbuzz-doc 60 - name: Deploy Documentations 61 if: github.ref_type == 'tag' 62 run: .ci/deploy-docs.sh 63 env: 64 GH_TOKEN: ${{ secrets.GH_TOKEN }} 65 REVISION: ${{ github.sha }} 66 - name: Generate Coverage 67 run: ninja -Cbuild coverage-xml 68 - name: Upload Coverage 69 uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4 70 with: 71 file: build/meson-logs/coverage.xml 72