Replace lint.yml, test.yml, security.yml, and docker-build.yml with a
single ci.yml that chains: Lint → Test → Security (CodeQL) → Build.
- Phase 1 (Lint): Black, Ruff, mypy for backend; ESLint for frontend
- Phase 2 (Test): pytest with coverage, PostgreSQL & Redis services
- Phase 3 (Security): Bandit, Safety, CodeQL (Python + JS/TS)
- Phase 4 (Build): Docker build+push, only on main branch or version tags
Each phase depends on the previous one passing. Docker images are only
built when pushing to main or tagging a release.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/3903cad7-10be-46e6-8e2d-619d2a874235