Skip to content

infrastructure: set up CI pipeline with lint, typecheck, and full test suite #45

@ShantKhatri

Description

@ShantKhatri

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

  • create .github/workflows/ci.yml with:
    • Trigger: push on main, pull_request on all branches.
    • Node.js matrix: [18, 20].
    • Steps:
      1. Checkout code.
      2. Set up pnpm via pnpm/action-setup.
      3. Install dependencies with pnpm install --frozen-lockfile.
      4. Run pnpm -r run typecheck (TypeScript compilation check).
      5. Run pnpm -r run lint (ESLint across all packages).
      6. Run pnpm -r run test (Vitest + Jest).
    • Upload test coverage artifacts.
  • create .github/workflows/pr-title.yml that enforces Conventional Commits format in PR titles using amannn/action-semantic-pull-request.
  • add a pnpm run typecheck script to any package that lacks it.
  • add a pnpm run lint script to any package that lacks it using ESLint config.
  • document the CI setup in CONTRIBUTING.md under a 'CI / Pipeline' section.
  • add a GitHub Actions badge to the root README.md.

Acceptance Criteria

  • CI runs automatically on every PR and blocks merge on failure.
  • all three stages (typecheck, lint, test) must pass.
  • PR title enforcement is active.
  • CI badge shows current status in README.

Difficulty

medium — requires GitHub Actions knowledge, pnpm monorepo workspace awareness, and CI/CD best practices.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions