Overview
There is no CI pipeline. PRs can be merged with broken builds, failing tests, or lint errors. A GitHub Actions workflow that automatically checks every PR restores the team's confidence that main is always deployable.
Context
- The monorepo has two workspaces:
backend/ (NestJS) and frontend/ (Next.js)
- Both need separate lint, test, and build steps
- Workflow files live in
.github/workflows/
- The backend requires PostgreSQL and Redis to run integration tests — use GitHub Actions service containers
Acceptance Criteria
Overview
There is no CI pipeline. PRs can be merged with broken builds, failing tests, or lint errors. A GitHub Actions workflow that automatically checks every PR restores the team's confidence that
mainis always deployable.Context
backend/(NestJS) andfrontend/(Next.js).github/workflows/Acceptance Criteria
.github/workflows/backend-ci.yml: triggers onpull_requesttomain; runsnpm run lint,npm run test:cov,npm run build; provisions apostgres:16andredis:7service container.github/workflows/frontend-ci.yml: triggers onpull_requesttomain; runsnpm run lint,npm run type-check(tsc --noEmit),npm run buildactions/cacheto cachenode_modulesbypackage-lock.jsonhashtype-checkscript tofrontend/package.json:tsc --noEmitCONTRIBUTING.md