Skip to content

End-to-End Development Lifecycle

flowchart LR
  Idea[Requirement / defect] --> Design[Design and acceptance criteria]
  Design --> Feature[Short-lived feature branch]
  Feature --> PR[Pull request]
  PR --> CI[Common CI gates]
  CI --> Develop[Merge to develop]
  Develop --> Dev[Argo CD deploys Dev]
  Dev --> Cut[Scheduled release cut]
  Cut --> Release[Release branch]
  Release --> Test[Release/Test environment]
  Test --> Decision{External approval required?}
  Decision -- Yes --> RC[Release candidate tag]
  Decision -- No --> Main[Merge/tag main]
  RC --> Main
  Main --> Prod[Internal production]

CI owns source validation, image construction, security scanning, SBOM generation, signing where required, and publishing to ECR, ACR, and the Snowflake registry. CI ends at the registry.

CD owns the detection of approved image tags, Argo CD reconciliation, Kubernetes rollout, health, and rollback. The deployment mechanism is deliberately separated from the application workflow.

A change is not done when code is written. It is done when acceptance criteria are met, tests are added, documentation is current, CI passes, the change is observable, and the owner understands rollout and rollback impact.