Skip to content

Commit 95800a8

Browse files
montycheeseclaude
andcommitted
ci: split verification into separate typecheck, lint, test, and docs jobs
Each runs as its own check so a failure names the thing that broke and can be required individually in branch protection, rather than one combined job. Also give the docs job a self-describing name: it verifies the generated agent index (public/llms.txt, llms-full.txt, AGENTS.md), which is committed and goes stale when routes change. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent c1163a0 commit 95800a8

2 files changed

Lines changed: 39 additions & 11 deletions

File tree

.github/workflows/ci.yml

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,41 +15,64 @@ permissions:
1515
contents: read
1616

1717
jobs:
18-
verify:
19-
name: typecheck · lint · test · docs
18+
typecheck:
2019
runs-on: ubuntu-latest
2120
steps:
2221
- uses: actions/checkout@v4
23-
2422
- uses: actions/setup-node@v4
2523
with:
2624
node-version: 24
2725
cache: npm
28-
2926
- run: npm ci
30-
3127
- run: npm run typecheck
3228

29+
lint:
30+
runs-on: ubuntu-latest
31+
steps:
32+
- uses: actions/checkout@v4
33+
- uses: actions/setup-node@v4
34+
with:
35+
node-version: 24
36+
cache: npm
37+
- run: npm ci
3338
- run: npm run lint
3439

40+
test:
41+
runs-on: ubuntu-latest
42+
steps:
43+
- uses: actions/checkout@v4
44+
- uses: actions/setup-node@v4
45+
with:
46+
node-version: 24
47+
cache: npm
48+
- run: npm ci
3549
- run: npm test
3650

37-
# Fails if public/llms.txt, llms-full.txt, or AGENTS.md are stale. These
38-
# are generated from the route tree and committed, so a new or renamed
39-
# route must come with a regeneration (npm run llms && npm run agents).
51+
# public/llms.txt, llms-full.txt, and AGENTS.md are generated from the route
52+
# tree and committed. They go stale whenever a route is added, renamed, or
53+
# removed, so this fails if they differ from a fresh generation (it also
54+
# reports sitemap drift). Fix with: npm run llms && npm run agents
55+
docs:
56+
name: docs (generated agent index)
57+
runs-on: ubuntu-latest
58+
steps:
59+
- uses: actions/checkout@v4
60+
- uses: actions/setup-node@v4
61+
with:
62+
node-version: 24
63+
cache: npm
64+
- run: npm ci
4065
- run: npm run docs:check
4166

4267
public-build-excludes-internal:
4368
name: public build excludes internal-only surfaces
4469
runs-on: ubuntu-latest
4570
steps:
4671
- uses: actions/checkout@v4
47-
4872
- uses: actions/setup-node@v4
4973
with:
5074
node-version: 24
5175
cache: npm
52-
5376
- run: npm ci
5477

5578
# The default (external) build is what ships to Vercel. Deliberately no

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ to run the **internal** build locally with those sections visible. See
3737

3838
`.github/workflows/ci.yml` runs on every pull request and on pushes to `main`:
3939

40-
- **verify**`typecheck`, `lint`, `test`, `docs:check`
40+
- **typecheck**`tsc --noEmit`
41+
- **lint** — eslint
42+
- **test** — vitest
43+
- **docs (generated agent index)** — fails if the committed `public/llms.txt`,
44+
`llms-full.txt`, or `AGENTS.md` are stale relative to the route tree. Fix with
45+
`npm run llms && npm run agents`.
4146
- **public build excludes internal-only surfaces** — builds the default
4247
(external) target and asserts that internal-only routes 404 and never appear
4348
in the nav or sitemap, so the deployment matrix can't silently regress

0 commit comments

Comments
 (0)