build(gate)!: coverage leaves the gate and runs on demand
Both lanes printed a coverage total with no threshold (owner decision E32 D4). No real hit as a lane: the one time the number found anything (5 bugs, E32) it was read by hand, and since then it was a line nobody acted on. It was also the most expensive part of the vitest lane, and the run that flaked in E35 S1. The vitest lane runs without --coverage, the pytest lane runs plain pytest; docs/development.md gives both on-demand commands, and the register row says why.
This commit is contained in:
+6
-3
@@ -75,8 +75,8 @@ python -m ruff format --check --config backend/ruff.toml backend scripts
|
||||
docker compose -f backend/docker-compose.test.yml run --rm --no-deps --build test \
|
||||
python -m basedpyright --project pyrightconfig.json
|
||||
|
||||
# tests — pure-logic + the DB-backed integration lane, against an ephemeral Postgres, ending with the
|
||||
# coverage total. The backend tree is bind-mounted, so it always tests your working files.
|
||||
# tests — pure-logic + the DB-backed integration lane, against an ephemeral Postgres. The backend
|
||||
# tree is bind-mounted, so it always tests your working files.
|
||||
docker compose -f backend/docker-compose.test.yml up --build --abort-on-container-exit --exit-code-from test
|
||||
docker compose -f backend/docker-compose.test.yml down -v
|
||||
|
||||
@@ -103,7 +103,10 @@ npx vite build # the production bundle (devOnlyGuard fails it on dev-only
|
||||
npm audit --omit=dev --audit-level=high # what ships to the browser, at high or above
|
||||
```
|
||||
|
||||
Coverage is reported, never enforced: `npm run test -- --coverage`, and the pytest lane's last line.
|
||||
Coverage is on demand, never enforced and not in the gate (E35): `npm run test -- --coverage` in
|
||||
`frontend/`, and for the backend
|
||||
`docker compose -f backend/docker-compose.test.yml run --rm test python -m pytest --cov=app` (then
|
||||
`… down -v`).
|
||||
The Playwright suite (`npm run e2e`) runs against the `:8080` stack built from your tree; the release
|
||||
requires it. Before an image is pushed, it is scanned with Trivy (HIGH/CRITICAL with a fix fails;
|
||||
exceptions in `.trivyignore.yaml`, each with a reason and an expiry).
|
||||
|
||||
+1
-1
@@ -107,7 +107,7 @@ project checks needs a row.
|
||||
| --- | --- | --- | --- |
|
||||
| check | e2e (Playwright) not in `check` | It needs the :8080 stack built from the tree (minutes). It runs in `check-full`, and `release` rebuilds the stack and requires it (E32 D2) — nothing ships without it. | 5 specs × 3 engines |
|
||||
| pushes | no server-side gate (no CI) | Owner decision 2026-10-04. The gate (`scripts/check.sh`) runs on the dev machine before work is handed over, and `release` runs it, then e2e, before anything is merged and Trivy before the image is pushed — the CI only repeated that, after the merge. Its runner shared the git host's container, and one run there starved Gitea of memory until it stopped answering. What it added — a fresh `npm ci` on Linux — the image build does at publish. | — |
|
||||
| coverage | no threshold | Owner decision E32 D4: reported on both sides, never enforced. "Every regression test seen red" is the bar; a percentage invites tests written to move it. | frontend 80% / backend 78% of lines (E32 S1) |
|
||||
| coverage | not in the gate; no threshold | Owner decision E32 D4: never enforced; "every regression test seen red" is the bar, and a percentage invites tests written to move it. Out of the lanes since E35: read once, by hand, it found 5 bugs; as a lane it was a number nobody acted on, and the slowest vitest run (the one that flaked). On demand: docs/development.md. | frontend 80% / backend 78% of lines (E32 S1) |
|
||||
| CVE gate | HIGH/CRITICAL with a fix available only | `--ignore-unfixed` + `--severity HIGH,CRITICAL`: a finding with no fix cannot be acted on by an upgrade; it shows in the scan output. A fixable one fails the publish, and the only way past it is `.trivyignore.yaml`. | 0 open (E32 S1) |
|
||||
| npm audit | `--omit=dev --audit-level=high` | What ships to the browser, at high or above. The dev toolchain's advisories were burned down by hand in E32 S1 (18 → 0). | 0 |
|
||||
| React Compiler | the functions it skips, pinned | `components/compilerCoverage.contract.test.ts` — the list may only shrink. End state: only VirtualGrid (TanStack Virtual, an IncompatibleLibrary) remains. | 93 (E32 S1) → 29 (E32 S3) → 1, VirtualGrid (E32 S4) |
|
||||
|
||||
Reference in New Issue
Block a user