Skip to content

ci: set up CI pipeline for automated testing and linting #102

@dimakis

Description

@dimakis

Context

Mitzo currently has no CI — tests and linting only run locally via pre-commit hooks. As the project grows and accumulates multi-layered bug fixes (see the user-message saga: PRs #47, #53, #54, #56, #57, #66, #79, #99, #100, #101), we need automated verification on every push and PR.

Scope

Phase 1: Core pipeline

  • GitHub Actions workflow on push to main and all PRs
  • npm test (vitest, 511+ tests)
  • npm run lint (eslint)
  • npm run format:check (prettier)
  • TypeScript type-checking (tsc --noEmit)

Phase 2: Build verification

  • npm run build — verify frontend builds cleanly
  • Server compilation check
  • Fail on unused exports or dead code (if tooling supports it)

Phase 3: Quality gates

  • Branch protection on main — require CI pass before merge
  • Test coverage reporting (optional, informational)
  • Bundle size tracking (optional)

Notes

  • Node version should match what's used in dev (check .nvmrc or package.json engines)
  • SQLite (better-sqlite3) needs native compilation — may need build deps in the CI image
  • Keep it fast — the test suite runs in ~1.5s locally, CI should stay under 2 minutes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions