• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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