| name: docs | |
| on: | |
| push: | |
| branches: [ main ] | |
| tags: ["*.*.*"] | |
| pull_request: | |
| branches: [ main ] | |
| permissions: | |
| contents: read | |
| jobs: | |
| docs: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }}-${{ runner.os }}-${{ runner.arch }} | |
| - name: Install Dependencies | |
| run: | | |
| sudo rm -f /etc/apt/sources.list.d/google-chrome.list | |
| sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
| 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 \ | |
| libpng-dev \ | |
| pkg-config \ | |
| zlib1g-dev \ | |
| help2man | |
| - name: Setup Emscripten | |
| uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 | |
| with: | |
| version: latest | |
| - name: Setup Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Python Dependencies | |
| run: pip3 install -r .ci/requirements.txt --require-hashes | |
| - name: Build HarfBuzz | |
| run: | | |
| ccache --version | |
| meson setup build \ | |
| -Dauto_features=enabled \ | |
| -Doptimization=2 \ | |
| -Ddoc_tests=true \ | |
| -Dgpu_demo=disabled \ | |
| -Dchafa=disabled | |
| meson compile -Cbuild | |
| - name: Generate Documentation | |
| run: ninja -Cbuild harfbuzz-doc | |
| - name: Run Doc Tests | |
| run: meson test -Cbuild --print-errorlogs harfbuzz-doc-check | |
| - name: Build Web Demos | |
| run: | | |
| bash util/gpu/web/build.sh | |
| bash util/gpu/web/build-webgpu.sh | |
| cp util/gpu/web/dom.html util/gpu/web/out/ | |
| - name: Stage for deployment | |
| run: | | |
| mkdir -p build/docs/html/hb-gpu-demo | |
| cp util/gpu/web/out/* build/docs/html/hb-gpu-demo/ | |
| - name: Deploy | |
| if: github.ref_type == 'tag' | |
| run: .ci/deploy-docs.sh | |
| env: | |
| GH_TOKEN: ${{ secrets.DOCS_PUSH_TOKEN }} | |
| REVISION: ${{ github.sha }} |