name: ci on: push: pull_request: jobs: lint-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 - name: Install run: npm ci # The Prisma client is generated into src/generated/prisma, which is # gitignored — so a fresh checkout has no client and every test that # reaches src/lib/db.ts dies on "Cannot find package # '@/generated/prisma/client'". Schema-only, so it needs no database. # Without this the pipeline had been red on every run since at least # ae0c34f, which is how the failure stayed invisible: it looked like # the normal colour. - name: Generate Prisma client run: npx prisma generate # Blocking since #79. It was advisory from 2026-07-19 while 23 errors sat # across the pages and the integration tests; those are now fixed, so a # new one must not be able to slip in behind a green tick. Warnings are # still allowed (eslint exits 0 on them) — there are 9 left, all # `no-unused-vars` or `exhaustive-deps` advisories, none of which should # stop a push. - name: Lint run: npm run lint # Typecheck is separate from `next build`: nothing else in CI compiles the # test files, so a type error in a fixture could only ever be found on a # developer's machine. - name: Typecheck run: npx tsc --noEmit - name: Unit tests run: npm test