mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-06-05 17:51:03 +02:00
Introduce a GitHub Actions workflow for running the unit tests
Note that we no longer create an empty file if the download fails because we don't want to leave traces of incorrect file contents on disk. This has never been particularly useful because it'd require a manual user action to remove the empty file to be able to retry in case of e.g. a timed out connection, but especially in the context of GitHub Actions where we cache the PDFs directory we don't want to cache invalid files to make sure that a next run will automatically retry to fetch any previously missed PDF files and update the cache.
This commit is contained in:
parent
9f42555cfb
commit
14743eef45
72
.github/workflows/unit_tests.yml
vendored
Normal file
72
.github/workflows/unit_tests.yml
vendored
Normal file
@ -0,0 +1,72 @@
|
||||
name: Unit tests
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- 'gulpfile.mjs'
|
||||
- 'src/**'
|
||||
- 'test/test.mjs'
|
||||
- 'test/unit/**'
|
||||
- 'web/**'
|
||||
- '.github/workflows/unit_tests.yml'
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
- 'gulpfile.mjs'
|
||||
- 'src/**'
|
||||
- 'test/test.mjs'
|
||||
- 'test/unit/**'
|
||||
- 'web/**'
|
||||
- '.github/workflows/unit_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 }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
persist-credentials: false
|
||||
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'npm'
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Restore cached PDF files
|
||||
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
with:
|
||||
path: test/pdfs/*.pdf
|
||||
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
|
||||
restore-keys: |
|
||||
cached-pdf-files-
|
||||
enableCrossOsArchive: true
|
||||
|
||||
- name: Run unit tests
|
||||
run: npx gulp unittest --headless
|
||||
|
||||
- name: Save cached PDF files
|
||||
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
with:
|
||||
path: test/pdfs/*.pdf
|
||||
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
|
||||
enableCrossOsArchive: true
|
||||
@ -66,8 +66,6 @@ async function downloadManifestFiles(manifest) {
|
||||
await downloadFile(file, url);
|
||||
} catch (ex) {
|
||||
console.error(`Error during downloading of ${url}:`, ex);
|
||||
fs.writeFileSync(file, ""); // making it empty file
|
||||
fs.writeFileSync(`${file}.error`, ex.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user