]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Chore: add codecov frontend test results (#9296)
authorshamoon <4887959+shamoon@users.noreply.github.com>
Tue, 4 Mar 2025 22:57:29 +0000 (14:57 -0800)
committerGitHub <noreply@github.com>
Tue, 4 Mar 2025 22:57:29 +0000 (22:57 +0000)
.github/workflows/ci.yml
.gitignore
src-ui/jest.config.js
src-ui/package-lock.json
src-ui/package.json

index 60c84162efa0d9ef26534551332c30dd7bedc167..32daae6ecea4e752e90eb720dfd48fa1f0dab4d5 100644 (file)
@@ -245,6 +245,8 @@ jobs:
         run: cd src-ui && npm run lint
       -
         name: Run Jest unit tests
+        env:
+          JEST_JUNIT_OUTPUT_FILE: junit-report-${{ matrix.shard-index }}.xml
         run: cd src-ui && npm run test -- --max-workers=2 --shard=${{ matrix.shard-index }}/${{ matrix.shard-count }}
       -
         name: Upload Jest coverage
@@ -257,7 +259,7 @@ jobs:
             src-ui/coverage/lcov.info
             src-ui/coverage/clover.xml
           retention-days: 7
-          if-no-files-found: warn
+          if-no-files-found: error
       -
         name: Run Playwright e2e tests
         run: cd src-ui && npx playwright test --shard ${{ matrix.shard-index }}/${{ matrix.shard-count }}
@@ -269,6 +271,16 @@ jobs:
           name: playwright-report-${{ matrix.shard-index }}
           path: src-ui/playwright-report
           retention-days: 7
+          if-no-files-found: error
+      -
+        name: Upload frontend test results
+        if: always()
+        uses: actions/upload-artifact@v4
+        with:
+          name: junit-report-${{ matrix.shard-index }}
+          path: src-ui/junit-report-${{ matrix.shard-index }}.xml
+          retention-days: 7
+          if-no-files-found: error
 
   tests-coverage-upload:
     name: "Upload to Codecov"
@@ -292,6 +304,13 @@ jobs:
           path: src-ui/coverage/
           pattern: playwright-report-*
           merge-multiple: true
+      -
+        name: Download frontend test results
+        uses: actions/download-artifact@v4
+        with:
+          path: src-ui/junit/
+          pattern: junit-report-*
+          merge-multiple: true
       -
         name: Upload frontend coverage to Codecov
         uses: codecov/codecov-action@v5
@@ -302,6 +321,14 @@ jobs:
           directory: src-ui/coverage/
           # dont include backend coverage files here
           files: '!coverage.xml'
+      -
+        name: Upload frontend test results to Codecov
+        if: ${{ !cancelled() }}
+        uses: codecov/test-results-action@v1
+        with:
+          token: ${{ secrets.CODECOV_TOKEN }}
+          flags: frontend
+          directory: src-ui/junit/
       -
         name: Download backend coverage
         uses: actions/download-artifact@v4
@@ -318,7 +345,7 @@ jobs:
           flags: backend
           directory: src/
       -
-        name: Upload test results to Codecov
+        name: Upload backend test results to Codecov
         if: ${{ !cancelled() }}
         uses: codecov/test-results-action@v1
         with:
index 0fd9d7bcd5aa87b935691524ec32677b7f928244..452273705af8e189b5281d5a1108226acdfcfb5e 100644 (file)
@@ -44,6 +44,7 @@ nosetests.xml
 coverage.xml
 *,cover
 .pytest_cache
+junit.xml
 
 # Translations
 *.mo
index 78edc082247c93d5b1f0d8c517cab71d0013aa97..c8574e745d68c9474b7653113a498bb252f47b48 100644 (file)
@@ -12,4 +12,13 @@ module.exports = {
     '^src/(.*)': '<rootDir>/src/$1',
   },
   workerIdleMemoryLimit: '512MB',
+  reporters: [
+    'default',
+    [
+      'jest-junit',
+      {
+        classNameTemplate: '{filepath}/{classname}: {title}',
+      },
+    ],
+  ],
 }
index 2492a5f2d2a7330750239e539e5da9fa5f0070a8..e681fb9669adb5a0c5d467064e55a40914c54679 100644 (file)
@@ -61,6 +61,7 @@
         "eslint": "^9.21.0",
         "jest": "29.7.0",
         "jest-environment-jsdom": "^29.7.0",
+        "jest-junit": "^16.0.0",
         "jest-preset-angular": "^14.5.3",
         "jest-websocket-mock": "^2.5.0",
         "patch-package": "^8.0.0",
         "fsevents": "^2.3.2"
       }
     },
+    "node_modules/jest-junit": {
+      "version": "16.0.0",
+      "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-16.0.0.tgz",
+      "integrity": "sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "mkdirp": "^1.0.4",
+        "strip-ansi": "^6.0.1",
+        "uuid": "^8.3.2",
+        "xml": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=10.12.0"
+      }
+    },
+    "node_modules/jest-junit/node_modules/uuid": {
+      "version": "8.3.2",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "uuid": "dist/bin/uuid"
+      }
+    },
     "node_modules/jest-leak-detector": {
       "version": "29.7.0",
       "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
         }
       }
     },
+    "node_modules/xml": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
+      "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==",
+      "dev": true,
+      "license": "MIT"
+    },
     "node_modules/xml-name-validator": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
index afcba2c8fbbc4e7db19cc4c66b9e7e8705e7f936..8dbb4cc1cfbd2d3ce1869bfbde8d1a9b17711b7b 100644 (file)
@@ -63,6 +63,7 @@
     "eslint": "^9.21.0",
     "jest": "29.7.0",
     "jest-environment-jsdom": "^29.7.0",
+    "jest-junit": "^16.0.0",
     "jest-preset-angular": "^14.5.3",
     "jest-websocket-mock": "^2.5.0",
     "patch-package": "^8.0.0",