You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The only CI workflow that runs on pull requests is .github/workflows/e2e.yml (Playwright). The core quality gates are never enforced in CI, even though the scripts exist in package.json:
pnpm typecheck (tsc --noEmit)
pnpm lint (next lint)
pnpm test:web
pnpm test:cli
This means type errors, lint violations, and unit-test regressions can land on main without any automated check. The repo even ships a pr-check skill that runs exactly these locally — CI should mirror it.
Dependency
⛔ Blocked by #45 (migrate Jest → Vitest). This workflow should run the Vitest suites, so the migration should land first. Once #45 merges, the test:web / test:cli scripts will invoke vitest run and this workflow wires straight into them — no change needed here beyond referencing the migrated scripts.
Proposed change
Add a .github/workflows/ci.yml that runs on pull_request and push to main:
Checkout + pnpm/action-setup + actions/setup-node (Node version from .nvmrc, cache: pnpm)
Problem
The only CI workflow that runs on pull requests is
.github/workflows/e2e.yml(Playwright). The core quality gates are never enforced in CI, even though the scripts exist inpackage.json:pnpm typecheck(tsc --noEmit)pnpm lint(next lint)pnpm test:webpnpm test:cliThis means type errors, lint violations, and unit-test regressions can land on
mainwithout any automated check. The repo even ships apr-checkskill that runs exactly these locally — CI should mirror it.Dependency
⛔ Blocked by #45 (migrate Jest → Vitest). This workflow should run the Vitest suites, so the migration should land first. Once #45 merges, the
test:web/test:cliscripts will invokevitest runand this workflow wires straight into them — no change needed here beyond referencing the migrated scripts.Proposed change
Add a
.github/workflows/ci.ymlthat runs onpull_requestandpushtomain:pnpm/action-setup+actions/setup-node(Node version from.nvmrc,cache: pnpm)pnpm install --frozen-lockfiletypecheck,lint,test:web,test:cli(all Vitest post-Migrate test suites from Jest to Vitest #45)concurrencyto cancel superseded runs (mirrore2e.yml)Acceptance criteria
.nvmrc(currently pinned there but not in CI)paths-ignorefor docs-only changes, consistent withe2e.ymlReferences
package.jsonscripts:typecheck,lint,test:web,test:cli.github/workflows/e2e.yml