# CI/CD Overview

## Workflows

| Workflow | Trigger | Purpose |
|----------|---------|---------|
| `.github/workflows/backend.yml` | push/PR to `main`, `develop` | Composer, Pint, PHPUnit |
| `.github/workflows/frontend.yml` | push/PR to `main`, `develop` | npm ci, type-check, lint, build, Vitest |
| `.github/workflows/docker.yml` | push/PR to `main` | `docker compose config` + image build |
| `.github/workflows/deploy.yml` | manual | Deployment scaffold |

## Required checks (recommended)

- Backend CI
- Frontend CI
- Docker Validate

## Release flow

1. Open PR → all workflows pass
2. Merge to `main`
3. Build/push container image (add registry step as needed)
4. Deploy via `docker-compose.production.yml` or orchestrator
5. Run migrations and cache commands
6. Verify `/health/*` endpoints

## Local parity

```bash
composer install
vendor/bin/pint --test
php artisan test

npm ci
npm run type-check && npm run lint && npm run build && npm run test -- --run

docker compose -f docker-compose.production.yml config
```
