Warning

🚧 Work in Progress: This page is currently under construction. Content may be incomplete or subject to change. To contribute, see the contribution guide.

Deploy Policy

Rules and procedures governing deployments to each environment.


Policy summary

EnvironmentWho can deployWhenApproval neededChange ticket
DevelopmentAny developerAnytimeNoNo
StagingGitHub Actions (auto on merge)AnytimeCI must passNo
ProductionGitHub Actions (manual trigger)Maintenance windowSquad lead + change ticketYes

Production deployment rules

  1. Change ticket first — open in ServiceNow at least 24h before (standard change) or immediately for emergency
  2. Maintenance window — deploy within the approved window (see Maintenance Windows)
  3. Staging validated — UAT sign-off must be recorded before production deploy
  4. Rollback plan — documented in the runbook and confirmed as viable
  5. Monitoring ready — alerts configured and squad on standby for 30min post-deploy

Rollback procedure

If a production deployment causes a P1/P2 incident:

# Option 1 — Revert to previous Git tag (preferred)
git revert HEAD
git push origin main
# This triggers the CI/CD pipeline with the reverted code
 
# Option 2 — Redeploy previous container image
gcloud run services update-traffic SERVICE_NAME \
  --to-revisions PREVIOUS_REVISION=100 \
  --region REGION
  1. Execute rollback immediately — do not wait for diagnosis if users are impacted
  2. Open a P1 incident in ServiceNow
  3. After stabilization, conduct a postmortem

Emergency (hotfix) deploys

For urgent production fixes outside the maintenance window:

  1. Get CTO/CDO verbal approval
  2. Create a hotfix/description branch from the current production tag
  3. Fix, test, and get at least 1 peer review (async is acceptable for P1)
  4. Deploy using the normal pipeline with manual production approval
  5. Register an emergency change in ServiceNow retroactively
  6. Conduct a postmortem within 5 business days

Deployment freeze periods

PeriodRestriction
Month-end accounting closeNo deploys to financial systems
Capital calls / distributionsNo deploys to affected systems
Year-end (Dec 20 – Jan 5)No major deploys — emergency only
(fill in)(fill in)