[CI 03] ci: build and test workflow for backend and frontend

✅ merged · #232 · open-legal-products/mike ← amal66/mike · opened 3mo ago by amal66 · merged 3mo ago by willchen96 · +102 across 1 file · ↗ on GitHub

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, because main currently carries 23 eslint errors; flip it to blocking once that backlog is burned down), and a production next build with placeholder NEXT_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.0 when evals/ 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 build passes; 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 backend and frontend checks to branch protection alongside e2e / playwright (see docs/e2e-ci.md in #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 body
Ported 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.

⬇ Download capture-pull-232.md