mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-07-14 02:55:49 +02:00
If one of our dependencies changes it can have an effect on all tests we have, for instance via the test runner, bundler or coverage collector. This commit therefore updates all workflows that work with a file-based allowlist to also trigger on `package-lock.json` changes so that we have more certainty that any unintended effects of dependency updates can't go by unnoticed, and thus improve stability.
109 lines
3.4 KiB
YAML
109 lines
3.4 KiB
YAML
name: Integration tests
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'gulpfile.mjs'
|
|
- 'external/**'
|
|
- 'package-lock.json'
|
|
- 'src/**'
|
|
- 'test/test.mjs'
|
|
- 'test/integration/**'
|
|
- 'web/**'
|
|
- '.github/workflows/integration_tests.yml'
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
paths:
|
|
- 'gulpfile.mjs'
|
|
- 'external/**'
|
|
- 'package-lock.json'
|
|
- 'src/**'
|
|
- 'test/test.mjs'
|
|
- 'test/integration/**'
|
|
- 'web/**'
|
|
- '.github/workflows/integration_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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: 'npm'
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Restore cached PDF files
|
|
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
with:
|
|
path: test/pdfs/*.pdf
|
|
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
|
|
restore-keys: |
|
|
cached-pdf-files-
|
|
enableCrossOsArchive: true
|
|
|
|
# Note that the integration tests can't run in headless mode until bug
|
|
# 1878643 (tracked in #20918), and possibly others, have been fixed
|
|
# upstream, so we can't run with the `--headless` flag and thus have to
|
|
# configure a standard resolution for the headful browser windows.
|
|
- name: Update resolution (Windows)
|
|
if: ${{ matrix.os == 'windows-latest' }}
|
|
run: Set-DisplayResolution -Width 1920 -Height 1080 -Force
|
|
|
|
- name: Run integration tests with code coverage (Windows)
|
|
if: ${{ matrix.os == 'windows-latest' }}
|
|
run: npx gulp integrationtest --coverage --coverage-output build/coverage/integration ${{ matrix.skip }}
|
|
|
|
- name: Run integration tests with code coverage (Linux)
|
|
if: ${{ matrix.os == 'ubuntu-latest' }}
|
|
run: xvfb-run -a --server-args="-screen 0, 1920x1080x24" npx gulp integrationtest --coverage --coverage-output build/coverage/integration ${{ matrix.skip }}
|
|
|
|
- name: Save cached PDF files
|
|
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
with:
|
|
path: test/pdfs/*.pdf
|
|
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
|
|
enableCrossOsArchive: true
|
|
|
|
- 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/integration/lcov.info
|
|
flags: integrationtest
|
|
name: codecov-umbrella
|
|
disable_search: true
|
|
disable_telem: true
|
|
verbose: true
|