diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml new file mode 100644 index 000000000..5a3c605e8 --- /dev/null +++ b/.github/workflows/unit_tests.yml @@ -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 diff --git a/test/downloadutils.mjs b/test/downloadutils.mjs index b79ed401b..feab36d53 100644 --- a/test/downloadutils.mjs +++ b/test/downloadutils.mjs @@ -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()); } } }