mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-03-26 17:08:17 +00:00
For the Python-based workflows we were already using `pip` caching [1], but sadly this isn't fully functional at the moment because the caching functionality uses `requirements.txt` to determine when to create or invalidate the cache. However, we have two different `pip` install commands but only a `requirements.txt` for one of them (the Fluent linter), which means that the other job (the font tests) will not populate the cache with its dependencies. This can be seen by opening any font tests or Fluent linting build and noticing that they report the exact same cache key even though their dependencies are different. In the installation step the dependencies are reported as "Downloading [package].whl" instead of the expected "Using cached [package].whl". This commit fixes the issue by explicitly defining a `requirements.txt` file for both jobs and pointing the caching functionality to the specific file paths to make sure that unique caches with the correct package data are used. While we're here we also align the syntax and step titles in the files for consistency. [1] https://github.com/actions/setup-python?tab=readme-ov-file#caching-packages-dependencies
79 lines
2.0 KiB
YAML
79 lines
2.0 KiB
YAML
name: Font tests
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'gulpfile.mjs'
|
|
- 'src/**'
|
|
- 'test/test.mjs'
|
|
- 'test/font/**'
|
|
- '.github/workflows/font_tests.yml'
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
paths:
|
|
- 'gulpfile.mjs'
|
|
- 'src/**'
|
|
- 'test/test.mjs'
|
|
- 'test/font/**'
|
|
- '.github/workflows/font_tests.yml'
|
|
branches:
|
|
- master
|
|
workflow_dispatch:
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
test:
|
|
name: Test
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node-version: [lts/*]
|
|
os: [windows-latest, ubuntu-latest]
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
environment: code-coverage
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
with:
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: 'npm'
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Use Python 3.14
|
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
|
|
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
|
|
run: npx gulp fonttest --headless
|
|
|
|
- name: Run font tests with code coverage
|
|
run: npx gulp fonttest --headless --coverage --coverage-output build/coverage/font
|
|
|
|
- name: Upload results to Codecov
|
|
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
fail_ci_if_error: true
|
|
files: ./build/coverage/font/lcov.info
|
|
flags: fonttest
|
|
name: codecov-umbrella
|
|
verbose: true
|