diff --git a/README.md b/README.md index ca622ad..528cc4b 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,15 @@ This starts the API, web frontend, and PostgreSQL. | `make compose-up` | Start Docker Compose stack | | `make compose-down` | Stop Docker Compose stack | +## Continuous Integration + +All pull requests and pushes to `main` are validated by a GitHub Actions workflow (`.github/workflows/ci.yml`). The workflow runs the frontend and backend quality gates in parallel: + +- **Web CI** — lint, typecheck, and test the React frontend. +- **API CI** — lint with `ruff`, typecheck with `mypy`, and run `pytest` against a PostgreSQL service container. + +See [Development](docs/development.md) for details on running these checks locally. + ## Documentation - [Architecture](docs/architecture.md) — System design and MVP phases diff --git a/docs/development.md b/docs/development.md index bb4ecc8..9f7c824 100644 --- a/docs/development.md +++ b/docs/development.md @@ -117,6 +117,15 @@ make test pnpm test ``` +## CI / Testing + +A GitHub Actions workflow (`.github/workflows/ci.yml`) runs on every push and pull request to `main`. It executes two jobs in parallel: + +- **web-ci** — checks out the repo, installs Node.js ≥ 20 and pnpm, then runs `lint`, `typecheck`, and `test` for `@headquarter/web`. +- **api-ci** — checks out the repo, sets up Python 3.11, installs API dev dependencies (`pytest`, `ruff`, `mypy`, `httpx`), starts a PostgreSQL service container, then runs `ruff check`, `mypy`, and `pytest` for the API. + +The workflow reports pass/fail status directly on pull requests as required status checks. All commands must pass before a PR can be merged. + ## Linting and Type Checking ### Frontend