Problem
Builds and tests were run manually before releases, creating inconsistent artifacts and slow, error-prone handoffs between dev and ops.
Solution
Built a reusable Actions workflow with matrix jobs for lint/test, container build with cache, SonarQube quality gate and Trivy scan, followed by an environment-gated deploy job with approvals.
Architecture
- 01push / PR trigger → lint + unit test matrix
- 02container build with layer cache → SonarQube + Trivy gates
- 03deploy job with environment protection rules