Repository navigation
harfbuzz-m: HarfBuzz 14.3.0 as C++23 modules (mcpplibs.mwrap.harfbuzz) #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| mcpp: | |
| name: mcpp (${{ matrix.os }}, ${{ matrix.toolchain }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - { os: ubuntu-24.04, toolchain: 'gcc@16.1.0' } | |
| - { os: ubuntu-24.04, toolchain: 'llvm@23.1.3' } | |
| - { os: macos-15, toolchain: 'llvm@23.1.3' } | |
| - { os: windows-2025, toolchain: 'llvm@23.1.3' } | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 60 | |
| defaults: | |
| run: | |
| shell: bash | |
| env: | |
| XLINGS_NON_INTERACTIVE: 1 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Mwrap identity and bilingual README contract | |
| run: python3 tools/check_mwrap_release.py | |
| - name: Install Xlings (Linux/macOS) | |
| if: runner.os != 'Windows' | |
| run: | | |
| curl -fsSL https://raw.githubusercontent.com/openxlings/xlings/refs/heads/main/tools/other/quick_install.sh | bash | |
| echo "$HOME/.xlings/subos/current/bin" >> "$GITHUB_PATH" | |
| - name: Install Xlings (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| irm https://raw.githubusercontent.com/openxlings/xlings/main/tools/other/quick_install.ps1 | iex | |
| "$env:USERPROFILE\.xlings\subos\current\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| - name: Install project tools (.xlings.json) | |
| run: | | |
| for attempt in 1 2 3; do | |
| xlings update > /dev/null 2>&1 || true | |
| if xlings install; then break; fi | |
| [ "$attempt" = 3 ] && exit 1 | |
| sleep 30 | |
| done | |
| mcpp --version | |
| - name: Select the toolchain | |
| run: | | |
| name="${{ matrix.toolchain }}" | |
| mcpp toolchain install "${name%@*}" "${name#*@}" | |
| mcpp toolchain default "$name" | |
| - name: Build the modules | |
| run: mcpp build | |
| - name: Tests (shaping, buffers, fonts, draw and paint, OpenType, FreeType, C++ helpers, macros, header mixing) | |
| run: mcpp test | |
| - name: Export audit (the generated surface is fresh; every declaration, header and macro of HarfBuzz's API) | |
| run: python3 tools/check_exports.py | |
| - name: Test fonts match their recorded provenance | |
| run: python3 tools/make_test_fonts.py --check | |
| - name: HarfBuzz's own shaping suites on hb-shape written against the module | |
| run: python3 tools/run_conformance.py |