chore(deps): bump the non-critical group across 1 directory with 20 updates #47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: API Service Coverage | |
| on: | |
| push: | |
| branches: ["main"] | |
| paths: | |
| - "api/**" | |
| pull_request: | |
| paths: | |
| - "api/**" | |
| defaults: | |
| run: | |
| working-directory: api | |
| jobs: | |
| unit-tests-with-coverage: | |
| name: Unit tests + coverage enforcement | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| cache: "npm" | |
| - name: Install dependencies | |
| run: npm ci | |
| working-directory: . | |
| - name: Run tests with V8 coverage | |
| run: npm run test:coverage | |
| - name: Upload coverage report | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: api-coverage | |
| path: api/coverage/ | |
| - name: Publish coverage to PR summary | |
| if: always() | |
| run: | | |
| echo "## API Service Coverage Report" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| if [ -f coverage/coverage-summary.json ]; then | |
| node -e " | |
| const fs = require('fs'); | |
| const summary = JSON.parse(fs.readFileSync('coverage/coverage-summary.json', 'utf8')); | |
| const total = summary.total; | |
| const thresholds = { lines: 80, branches: 75, functions: 80, statements: 80 }; | |
| let failed = false; | |
| const rows = []; | |
| for (const [key, threshold] of Object.entries(thresholds)) { | |
| const pct = total[key]?.pct ?? 0; | |
| const pass = pct >= threshold; | |
| if (!pass) failed = true; | |
| rows.push(\`| \${key} | \${pct.toFixed(1)}% | \${threshold}% | \${pass ? '✅' : '❌'} |\`); | |
| } | |
| const table = [ | |
| '| Metric | Actual | Threshold | Status |', | |
| '|--------|--------|-----------|--------|', | |
| ...rows, | |
| ].join('\n'); | |
| fs.appendFileSync(process.env.GITHUB_STEP_SUMMARY, table + '\n'); | |
| if (failed) process.exit(1); | |
| " | |
| else | |
| echo "Coverage report not found." >> $GITHUB_STEP_SUMMARY | |
| exit 1 | |
| fi |