- Home
- Engineering
- Deployment
Deployment
Guide to deployment processes, environments, and CI/CD pipelines.
This guide outlines our deployment pipeline, release management, and monitoring during deployments.
Environments
Section titled “Environments”We maintain three primary deployment environments:
| Environment | Purpose | Target Branch | Trigger |
|---|---|---|---|
| Development | Sandbox for local integrations and quick testing. | dev |
Automated on commit |
| Staging | Pre-production testing, QA verification, and stakeholder review. | main |
Pull Request merges |
| Production | Live system serving real customers. | main (tagged) |
GitHub Release / Manual Tag |
CI/CD Pipeline
Section titled “CI/CD Pipeline”Our pipelines are defined in GitHub Actions (.github/workflows/). The pipeline follows these phases:
graph LR Code[Push Code] --> Lint[Lint & Test] Lint --> Build[Build Container] Build --> Publish[Publish to AWS ECR] Publish --> Deploy[Deploy to ECS Fargate]Pre-Deployment Checks
Section titled “Pre-Deployment Checks”Before code can be merged into the main branch, the following checks must pass:
- All unit tests must pass.
- Code coverage must meet the minimum threshold (default: 80%).
- CodeQL security analysis must report no high or critical issues.
- At least one approval from a CODEOWNER is required.
Rollback Procedure
Section titled “Rollback Procedure”If an issue is detected post-deployment:
- Locate the active workflow run on GitHub Actions.
- Select the previous stable release version tag.
- Trigger a manual deployment with that tag to override the active image, OR revert the offending merge commit in git to trigger an automated rollback.

