e952844806
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