CI-CD Workflows

20 GitHub Actions workflow files in .github/workflows/ automate testing, building, and deployment.

Core Pipeline

WorkflowTriggerPurpose
main-deploy.ymlPush to mainBuild, test, deploy to development
pr-preview.ymlPR open/updatePreview deployment with ephemeral DB
pr-cleanup.ymlPR closeDestroy preview apps
promote-image.ymlManual dispatchPromote images: dev staging production
quality-checks.ymlPR + main pushTypecheck, lint, test, coverage

Security Workflows

WorkflowTriggerPurpose
security-scan.ymlDaily (2 AM UTC) + PR4-layer security scan
container-security-scan.ymlOn image buildTrivy container vulnerability scan

Database Workflows

WorkflowTriggerPurpose
migration-tests.ymlPR (schema changes)Migration syntax, ordering, destructive ops
staging-db-sync.ymlManualSync staging DB from production
backup-verify.ymlScheduledVerify backup integrity

Maintenance Workflows

WorkflowTriggerPurpose
cleanup-registry.ymlScheduledPrune old container images
cleanup-orphaned-previews.ymlScheduledRemove stale preview apps
cache-warmup.ymlPost-deployWarm application caches

Other Workflows

WorkflowTriggerPurpose
e2e-tests.ymlPR + mainEnd-to-end Playwright tests
claude-code-review.ymlPR review requestAI-assisted code review
deploy-log-shipper.ymlManualDeploy log shipping infrastructure

Required Status Check

The ci-gate job (in pr-preview.yml) is the single required status check for merging. It validates that all upstream jobs passed or were correctly skipped. See Git Workflow for branch protection rules.

Image Tags

Tag PatternSource
main-<sha>Main branch builds
dev-latestLatest development build
pr-<number>PR preview builds

Promotion Flow

development --> staging --> production
  (auto)       (manual)    (manual)

gh workflow run promote-image.yml -f source_environment=development -f target_environment=staging

Same immutable Docker image is promoted across environments.

See Also