name: Font tests on: push: paths: - 'gulpfile.mjs' - 'external/**' - 'package-lock.json' - 'src/**' - 'test/test.mjs' - 'test/font/**' - '.github/font_tests_requirements.txt' - '.github/workflows/font_tests.yml' branches: - master pull_request: paths: - 'gulpfile.mjs' - 'external/**' - 'package-lock.json' - 'src/**' - 'test/test.mjs' - 'test/font/**' - '.github/font_tests_requirements.txt' - '.github/workflows/font_tests.yml' branches: - master workflow_dispatch: permissions: contents: read jobs: test: name: ${{ matrix.os }} / ${{ matrix.browser }} strategy: fail-fast: false matrix: node-version: [lts/*] os: [windows-latest, ubuntu-latest] browser: [firefox, chrome] include: - browser: firefox skip: --noChrome - browser: chrome skip: --noFirefox runs-on: ${{ matrix.os }} environment: code-coverage steps: - name: Checkout repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ matrix.node-version }} cache: 'npm' - name: Install dependencies run: npm ci - name: Use Python 3.14 uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: '3.14' cache: 'pip' cache-dependency-path: '.github/font_tests_requirements.txt' - name: Install requirements run: pip install -r .github/font_tests_requirements.txt - name: Run font tests with code coverage run: npx gulp fonttest --headless --coverage --coverage-output build/coverage/font ${{ matrix.skip }} - name: Upload results to Codecov uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 with: token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: true files: ./build/coverage/font/lcov.info flags: fonttest name: codecov-umbrella disable_search: true disable_telem: true verbose: true