Skip to content

Commit c7e3a03

Browse files
ci(frontend): add react-doctor check for landing site (#151)
* ci(frontend): add react-doctor check for landing site Adds a CI job that runs react-doctor (https://github.com/millionco/react-doctor) against the Next.js 15 + React 19 landing site at frontend/src/landing/. The landing has 29 .tsx components and no existing lint coverage; the only prior frontend CI was a schema.ts drift check in go.yml. - New workflow .github/workflows/react-doctor.yml, path-filtered to frontend/src/landing/** so backend-only PRs don't pay for it. - doctor script + react-doctor devDep added to the landing package. - Default --blocking=error: surfaces security, bugs, perf, a11y, and maintainability findings without failing CI on existing warnings (current baseline: 0 errors, 58 warnings, ~5s locally). - Runs with --no-telemetry so CI runners don't ping react.doctor. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * ci(frontend): also scope react-doctor push trigger to landing paths Mirrors the PR path filter on push to main so backend-only merges don't re-run the landing check. Unlike go.yml/cli-e2e.yml (which trigger on broad path sets), this workflow only cares about frontend/src/landing/. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * ci(frontend): use react-doctor GitHub Action, drop devDep + lockfile churn Replaces the npm install + npm run doctor approach with the official millionco/react-doctor@v2 composite action. The action manages its own Node setup and react-doctor install on the runner, so the landing package.json and lockfile stay untouched (no transitive-dep bloat from react-doctor's 479-package tree). The action also wires up sticky PR summary comments, inline review comments, and commit statuses out of the box — requires pull-requests and statuses write perms.
1 parent 9dedae9 commit c7e3a03

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

.github/workflows/react-doctor.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: React Doctor
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- "frontend/src/landing/**"
8+
- ".github/workflows/react-doctor.yml"
9+
pull_request:
10+
paths:
11+
- "frontend/src/landing/**"
12+
- ".github/workflows/react-doctor.yml"
13+
14+
permissions:
15+
contents: read
16+
pull-requests: write
17+
statuses: write
18+
19+
jobs:
20+
doctor:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- uses: actions/checkout@v4
24+
25+
# Composite action: installs react-doctor itself, runs the scan against
26+
# the landing site, posts a sticky PR summary + inline review comments,
27+
# and publishes a commit status. Default blocking=error means only
28+
# error-severity findings fail the job; warnings are reported but don't
29+
# block.
30+
- uses: millionco/react-doctor@v2
31+
with:
32+
directory: frontend/src/landing

0 commit comments

Comments
 (0)