Release Process
Versioning, deployment gates, rollback triggers, and communication.
Production releases promote tested Beta code through an approval gate. Beta is continuous; Production is deliberate.
Beta → Production flow
Release checklist
Before promoting to Production
- All planned features validated on Beta by QA.
- No open P1/P2 bugs against the Beta build.
- Release notes drafted from merged PR titles.
- Code owner and SRE approve in #deployments.
- Create version tag on
main. - CI deploys to Production and runs health checks.
- Engineering monitors metrics for 30 minutes.
Versioning
Calendar versioning: YYYY.MM.patch (e.g., 2026.05.1)
git tag v2026.05.1
git push origin v2026.05.1CI/CD configuration
name: Build and Deploy
on:
pull_request:
push:
branches: [main]
release:
types: [published]
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: corepack enable
- run: pnpm install --frozen-lockfile
- run: pnpm lint && pnpm typecheck && pnpm test
deploy-beta:
needs: verify
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment: beta
steps:
- run: echo "Deploy to Beta"
deploy-prod:
needs: verify
if: github.event_name == 'release'
runs-on: ubuntu-latest
environment: production
steps:
- run: echo "Deploy to Production"Rollback triggers
Initiate a rollback when:
- Error rate exceeds 5% for 5 minutes
- P95 latency doubles from baseline
- Critical user flow is broken (login, checkout, data access)
- Data integrity issue is detected
See Production Rollback for commands.
Environment summary
| Environment | When it updates | Approval needed |
|---|---|---|
| Alpha | Every PR push | None |
| Beta | Every merge to main | None (CI must pass) |
| Production | Release tag created | Code owner + SRE |
See Environments for full details.