Skip to content

chore(deps)(deps): bump the frontend-minor-patch group across 1 directory with 15 updates #629

chore(deps)(deps): bump the frontend-minor-patch group across 1 directory with 15 updates

chore(deps)(deps): bump the frontend-minor-patch group across 1 directory with 15 updates #629

Workflow file for this run

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"