[CI 03] ci: build and test workflow for backend and frontend
From the PR description
Summary
A CI workflow (.github/workflows/ci.yml) that builds and tests both packages and runs the eval harness on every PR and push to main. Ported from the reference index (#205, row amal66#46) and extended for this tree. Complements the e2e workflow in #220 - this one is the fast gate (~2-3 min), that one the full-stack gate.
Changes
Three jobs:
- backend -
npm ci,npm test --if-present,npm run build(tsc, so the backend is typechecked on every PR). - frontend -
npm ci,npm test --if-present,npm run lint(advisory -continue-on-error, becausemaincurrently carries 23 eslint errors; flip it to blocking once that backlog is burned down), and a productionnext buildwith placeholderNEXT_PUBLIC_*env (values are only inlined at build time; nothing is contacted - verified locally that the build succeeds with placeholders). - evals - runs
node evals/run.mjs --threshold 1.0whenevals/exists, else skips with a message.
Why
The repo has no CI besides the e2e workflow proposed in #220 today: a PR that breaks the backend build, fails tsc, or breaks a unit test reports green. Test steps use --if-present and the evals job checks for evals/run.mjs, so this is safe to merge before or after the other testing PRs in any order - on today's tree it still gates both builds.
Testing
- Every step verified locally against this branch's tree: backend
npm ci && npm run buildpasses; frontend production build with the exact placeholder env in the workflow passes;actionlint-style read-through of the YAML (the workflow mirrors the fork's, which ran green on the fork's Actions). - To make it merge-blocking, add the
backendandfrontendchecks to branch protection alongsidee2e / playwright(seedocs/e2e-ci.mdin #220).
Based directly on main; no shared commits with the other testing PRs.
🤖 Generated with Claude Code
Our analysis
Add fast CI gates for builds, tests, and evals — read the full analysis →
Think the analysis missed something the PR description covers?
Commits in this PR (1)
| SHA | Subject | Author | Date | |
|---|---|---|---|---|
b20109ac | ci: build and test workflow for backend and frontend | QA Runner | 2026-07-20 | ↗ GitHub |
commit bodyPorted from amal66/mike#46 onto current main, extended for this tree: backend job runs npm ci, tests (--if-present, so it is safe to merge in any order relative to the test-harness PR) and tsc build; frontend job runs tests, eslint as an advisory step (main currently carries 23 lint errors - flip to blocking once burned down), and a production next build with placeholder NEXT_PUBLIC_* env (verified locally that the build succeeds and contacts nothing); evals job runs node evals/run.mjs when present, else skips. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> | ||||
Capture this PR into my fork
Download a Markdown prompt that tells Claude how to port every
commit in this PR into your working tree. Run it via
claude -p < capture-pull-232.md from
inside the repo you want the changes in.