chore(deps)(deps): bump tar from 7.5.13 to 7.5.16 in /frontend/studyh… #614
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: Quality Gates | |
| on: | |
| pull_request: | |
| branches: [main] | |
| push: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint-and-test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 20 | |
| cache: 'npm' | |
| # Use root npm ci so the root lockfile + workspaces resolve as one | |
| # tree. `npm ci --prefix <workspace>` reads only the workspace | |
| # lockfile, which drifts vs root whenever Dependabot updates a | |
| # transitive (CLAUDE.md "Workspace lockfile sync — non-negotiable"). | |
| # Switched 2026-05-22 after EUSAGE on @emnapi/core during wave-12.6 | |
| # blocked every PR + main from merging. | |
| - run: npm ci | |
| # Prisma client is generated, not installed. Without this step every | |
| # backend test importing @prisma/client throws "did not initialize | |
| # yet". There is no postinstall hook on backend/package.json — the | |
| # generate command must run explicitly. `npx` doesn't accept | |
| # --prefix, so use working-directory. | |
| - run: npx prisma generate | |
| working-directory: backend | |
| - run: npm --prefix backend run lint | |
| - run: npm --prefix frontend/studyhub-app run lint | |
| - run: npm --prefix backend test | |
| - run: npm --prefix frontend/studyhub-app run build | |
| accessibility: | |
| runs-on: ubuntu-latest | |
| needs: lint-and-test | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 20 | |
| cache: 'npm' | |
| - run: npm ci | |
| - run: npm --prefix frontend/studyhub-app run build | |
| - name: Run Lighthouse CI | |
| uses: treosh/lighthouse-ci-action@v12 | |
| with: | |
| configPath: frontend/studyhub-app/lighthouse.config.cjs | |
| uploadArtifacts: true | |
| bundle-size: | |
| runs-on: ubuntu-latest | |
| needs: lint-and-test | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 20 | |
| cache: 'npm' | |
| - run: npm ci | |
| - run: npm --prefix frontend/studyhub-app run build | |
| - name: Check bundle size | |
| run: | | |
| DIST_SIZE=$(du -sb frontend/studyhub-app/dist | cut -f1) | |
| MAX_SIZE=5242880 # 5MB budget | |
| if [ $DIST_SIZE -gt $MAX_SIZE ]; then | |
| echo "::warning::Bundle size ($DIST_SIZE bytes) exceeds budget ($MAX_SIZE bytes)" | |
| fi | |
| echo "Bundle size: $DIST_SIZE bytes" |