Skip to content

harfbuzz-m: HarfBuzz 14.3.0 as C++23 modules (mcpplibs.mwrap.harfbuzz) #2

harfbuzz-m: HarfBuzz 14.3.0 as C++23 modules (mcpplibs.mwrap.harfbuzz)

harfbuzz-m: HarfBuzz 14.3.0 as C++23 modules (mcpplibs.mwrap.harfbuzz) #2

Workflow file for this run

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