ci(frontend): Frontend CI — typecheck + Vitest render contracts (G-3)#165
ci(frontend): Frontend CI — typecheck + Vitest render contracts (G-3)#165SharedQA wants to merge 1 commit into
Conversation
…G-3) The frontend had no test CI (only docker.yml), so the render-contract suite (constructorfabric#163/constructorfabric#164) didn't gate PRs. This runs typecheck + vitest on every PR so a server error can't silently regress to 'No data' (#1336/#1337) and null can't render as 0 (#1337) without failing the build. - corepack honors packageManager pnpm@10.33.0 (no version drift). - actions SHA-pinned, persist-credentials: false. - typecheck + test are blocking (both green on main); lint is report-only until 3 pre-existing 'setState in effect' errors on main are cleared, then it flips to blocking (the ratchet). Signed-off-by: Kenan Salim <kenan.salim@rolos.com>
|
Warning Review limit reached
More reviews will be available in 31 minutes and 10 seconds. Learn how PR review limits work. To continue reviewing without waiting, enable usage-based billing in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Set persist-credentials: false on all checkout steps so the GITHUB_TOKEN isn't left in .git/config for later steps — this CI only reads code. Carried over from the superseded frontend-ci PR (constructorfabric#165). Signed-off-by: Konstantin Tursunov <6252265+ktursunov@users.noreply.github.com>
|
#174 implements frontend CI as a superset of this PR: typecheck + Vitest (with coverage) + lint as three parallel jobs, on Node 24 (from A couple of notes relative to this PR:
|
Set persist-credentials: false on all checkout steps so the GITHUB_TOKEN isn't left in .git/config for later steps — this CI only reads code. Carried over from the superseded frontend-ci PR (constructorfabric#165). Signed-off-by: Konstantin Tursunov <konstantin.tursunov@constructor.tech>
What
Adds
.github/workflows/frontend-ci.yml— the frontend had no test CI (onlydocker.yml), so the render-contract suite from #163/#164 wasn't gating PRs. Now every PR runs typecheck + Vitest.Why
Makes the render contract enforceable: a server error can't silently regress to "No data" (#1336) and a not-ingested metric can't render as
0(#1337) without a red build. This is task G-3.Choices
packageManager: pnpm@10.33.0— no pnpm version drift (a hardcodedpnpm@8would break the v9 lockfile).persist-credentials: false(supply-chain hardening, consistent with the insight repo gates).main). lint is report-only for now —mainhas 3 pre-existingsetState within an effecterrors (insection-drilldown-sheet.tsx,engineering-dashboard-v2.tsx,team-view-v2.tsx); once those are fixed, dropcontinue-on-errorto make lint blocking too (the ratchet).Verified locally: typecheck clean, 79 tests pass on main (112 with #163/#164 merged).