Summary
The project currently has no continuous integration pipeline. Set up a GitHub Actions CI workflow that runs on every pull request to enforce code quality across all packages in the monorepo.
Context
The monorepo uses pnpm workspaces. The packages are: apps/backend, apps/mobile, apps/web, and packages/shared. Each has its own test and typecheck scripts.
Tasks
Acceptance Criteria
Difficulty
medium — requires GitHub Actions knowledge, pnpm monorepo workspace awareness, and CI/CD best practices.
Summary
The project currently has no continuous integration pipeline. Set up a GitHub Actions CI workflow that runs on every pull request to enforce code quality across all packages in the monorepo.
Context
The monorepo uses pnpm workspaces. The packages are:
apps/backend,apps/mobile,apps/web, andpackages/shared. Each has its owntestandtypecheckscripts.Tasks
.github/workflows/ci.ymlwith:pushonmain,pull_requeston all branches.[18, 20].pnpm/action-setup.pnpm install --frozen-lockfile.pnpm -r run typecheck(TypeScript compilation check).pnpm -r run lint(ESLint across all packages).pnpm -r run test(Vitest + Jest)..github/workflows/pr-title.ymlthat enforces Conventional Commits format in PR titles usingamannn/action-semantic-pull-request.pnpm run typecheckscript to any package that lacks it.pnpm run lintscript to any package that lacks it using ESLint config.CONTRIBUTING.mdunder a 'CI / Pipeline' section.README.md.Acceptance Criteria
Difficulty
medium— requires GitHub Actions knowledge, pnpm monorepo workspace awareness, and CI/CD best practices.