[E00-S05-T01] Implement CI quality baseline (required PR stages) #405
@@ -143,11 +143,22 @@ node <package-dir>/dist/index.js # e.g. node packages/core/dist/index.js
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
pnpm test
|
pnpm test
|
||||||
|
pnpm lint
|
||||||
```
|
```
|
||||||
|
|
||||||
`pnpm test` runs the `node:test` suites under `tests/` (currently
|
`pnpm test` runs the `node:test` suites under `tests/` with zero extra
|
||||||
`tests/architecture-import.test.mjs`, 10 tests) with zero extra dependencies.
|
dependencies (this is also the suite that enforces the dependency-boundary
|
||||||
This is also the suite that enforces the dependency-boundary rule.
|
rule). `pnpm lint` runs the formatting/lint policy suite
|
||||||
|
(`tests/formatting-policy.test.mjs`): every tracked text file must use LF
|
||||||
|
line endings, no BOM, no trailing whitespace, no tab indentation and exactly
|
||||||
|
one final newline; JSON files must additionally parse, carry no duplicate
|
||||||
|
keys and use 2-space indentation.
|
||||||
|
|
||||||
|
Pull requests run these checks as CI stages, in order — frozen lockfile
|
||||||
|
install → typecheck → formatting/lint → unit → architecture → PostgreSQL
|
||||||
|
integration → build of the applications (E00-S05-T01); the stage order,
|
||||||
|
the `needs` chain and the `tests/` coverage are locked in by
|
||||||
|
`tests/ci-stages.test.mjs`.
|
||||||
|
|
||||||
## Smoke check from a clean clone
|
## Smoke check from a clean clone
|
||||||
|
|
||||||
@@ -157,7 +168,8 @@ corepack enable
|
|||||||
pnpm install --frozen-lockfile # exit 0, lockfile untouched
|
pnpm install --frozen-lockfile # exit 0, lockfile untouched
|
||||||
pnpm build # 5/5 packages emit dist/, exit 0
|
pnpm build # 5/5 packages emit dist/, exit 0
|
||||||
pnpm typecheck # 5/5 packages pass --noEmit, exit 0
|
pnpm typecheck # 5/5 packages pass --noEmit, exit 0
|
||||||
pnpm test # 10/10 pass, exit 0
|
pnpm lint # formatting/lint policy passes, exit 0
|
||||||
|
pnpm test # all node:test suites pass, exit 0
|
||||||
pnpm --filter @personal-blog/server start # requires EPPP_SESSION_SECRET (see [Run](#run)); serves GET /health on port 3000, stays up
|
pnpm --filter @personal-blog/server start # requires EPPP_SESSION_SECRET (see [Run](#run)); serves GET /health on port 3000, stays up
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user