Skip to content

Deployments

A Deployment in GuideMode represents a release of code to an environment. Deployments are synced from code hosting providers (GitHub, GitLab) and are central to DORA metrics like deployment frequency, change failure rate, and mean time to recovery.

Deployments in GuideMode:

  • Track releases across multiple environments
  • Monitor status through the deployment lifecycle
  • Link to PRs for end-to-end delivery tracking
  • Power DORA metrics for DevOps performance
  • Record history of status changes for incident analysis

Deployments target specific environments:

Diagram
EnvironmentDescription
productionLive environment serving real users
stagingPre-production testing environment
developmentDevelopment/integration testing
qaQuality assurance testing
previewEphemeral/temporary environments (PR previews)
otherCustom environments
FlagDescription
isProductionWhether this is a production deployment (for DORA metrics)
isTransientWhether this is an ephemeral environment (excluded from some metrics)

Deployments progress through a defined status lifecycle:

Diagram
StatusDescriptionDORA Impact
pendingDeployment triggered, not started
queuedWaiting in deployment queue
in_progressActively deploying
successDeployment completed successfullyCounts for deployment frequency
failureDeployment failedCounts for change failure rate
errorSystem error during deploymentCounts for change failure rate
inactiveSuperseded by newer deployment
FieldTypeDescription
environmentenumTarget environment
currentStatusenumCurrent deployment status
refstringBranch, tag, or SHA being deployed
shastringGit commit SHA
taskstringDeployment task (e.g., “deploy”, “rollback”)
descriptionstringDeployment description
urlstringURL to deployed environment
FieldDescription
providerSource provider (‘github’, ‘gitlab’, ‘custom’)
externalIdProvider’s deployment ID
apiUrlAPI endpoint for deployment
FieldDescription
creatorIdUser who triggered deployment (GuideMode ID)
creatorExternalIdProvider’s user ID
creatorUsernameUsername of creator

Every status change is recorded in the deployment status history:

Diagram
FieldDescription
statusStatus at this point in time
descriptionStatus message/description
targetUrlURL to the deployed environment
logUrlURL to deployment logs
createdAtWhen this status was recorded

This history enables:

  • MTTR calculation - Time from failure to success
  • Incident analysis - Understanding deployment failures
  • Retry tracking - Counting deployment attempts
Diagram Diagram

Deployments are linked to the PRs that introduced the code:

Diagram
MethodDescription
sha_matchDeployment SHA matches PR merge commit
webhookProvider webhook provided the link
manualManually linked

These links enable:

  • Full lead time - Issue → PR → Deployment
  • Change tracking - Which PRs are in production
  • Rollback analysis - What was deployed when

Deployments power three of the four DORA metrics:

How often you deploy to production:

Frequency = Production deployments / Time period
EliteHighMediumLow
Multiple per dayDaily to weeklyWeekly to monthlyMonthly or less

Percentage of deployments that fail:

Failure Rate = (failed deployments / total deployments) × 100
EliteHighMediumLow
0-15%16-30%31-45%46%+

Average time to recover from a failure:

MTTR = Average(success_time - failure_time)
EliteHighMediumLow
< 1 hour< 1 day< 1 week> 1 week
TimestampDescriptionUsed For
createdAtWhen deployment was triggeredDeployment frequency
currentStatusUpdatedAtWhen status last changedCurrent state tracking
TimestampDescriptionUsed For
firstFailureAtFirst failure statusMTTR start
firstSuccessAtFirst success statusMTTR end

The metadata field stores provider-specific deployment data:

{
"workflow_run_id": 123456,
"environment_url": "https://preview-123.example.com",
"deployment_payload": {
"version": "2.1.0",
"rollback_sha": "abc123"
}
}

The task field indicates the type of deployment:

TaskDescription
deployStandard deployment (default)
deploy:migrationsDeployment with database migrations
rollbackRollback to previous version