Skip to main content

Pipeline YAML Reference

Quick reference for all fields in pipeline.yaml. For detailed explanations, see the linked pages.

Top Level

version: "1.0.0"               # Required. Use "1.0.0".

pipeline:
cloud_provider: AWS # Required. Only "AWS" supported.
pipeline_updates_require_approval: ALWAYS # Required. ALWAYS | NEVER | DESTRUCTIVE_CHANGES_ONLY

stage_defaults: # Optional
deployment_time_window: ...

stages: [...] # Required. Min 1 stage.
steps: [...] # Required.
artifacts: {...} # Required.
notifications: {...} # Optional. Notification provider configs.
ephemeral_environments: {...} # Optional. Ephemeral environment configs.

Notifications

notifications:
slack: # Optional. Slack notification config.
channel: "#deployments" # Required. Slack channel to post to.
events: # Required. Event keys to subscribe to.
- stage_failed
- approval_required
- stage_auto_rolled_back # Future
- stage_rolled_back # Future
- stage_rolled_forward # Future

See Slack Integration for details on connecting Slack and supported event types.

Ephemeral Environments

ephemeral_environments:
env-name:
triggers: # Required. Array of trigger configs.
- on: pull_request # "pull_request" or "api"
target_branches: ["feat-*"] # Required for pull_request triggers.
- on: api
release: # Required. Array of release conditions.
- on: pr_closed # "pr_closed", "api", or "timeout"
- on: timeout
after_idle_hours: 24 # Required for timeout releases.
on_release: deploy_main # Required. Action on release.
account_id: string # Required. AWS account ID.
region: string # Required. AWS region.
vars: Record<string, any> # Optional. Stage variables.
skip: string[] # Optional. Step names/IDs to skip.

See Ephemeral Environments.

Stage

stages:
- name: string # Required. Unique stage name.
account_id: string # Required. AWS account ID.
region: string # Required. AWS region.
deployment_time_window: string # Optional. NONE | PACIFIC_WORKING_HOURS | PACIFIC_WORKING_HOURS_REDUCED
vars: Record<string, any> # Optional. Stage variables.
skip: string[] # Optional. Step names/IDs to skip.
auto_rollback_alarm_name: string # Optional. CloudWatch alarm name.

See Stages.

Stage Defaults

stage_defaults:
deployment_time_window: string # Optional. Applied to all stages unless overridden.

Step

steps:
- name: string # Required. Unique step name.
type: string # Required. Step type (e.g., DEVRAMPS:ECS:DEPLOY).
id: string # Optional. Short alias for expressions.
params: {...} # Required. Step-specific parameters.
goes_after: string[] # Optional. Dependencies (step names or IDs).

VM-based steps also support:

    host_size: string            # Optional. "small" | "medium" | "large". Default: "small".
architecture: string # Optional. "linux/amd64" | "linux/arm64". Default: "linux/amd64".
dependencies: string[] # Optional. System deps (e.g., ["node.24"]).

See Steps and Step Reference.

Artifact

Artifacts are a map with the artifact name as the key:

artifacts:
Artifact Name:
type: string # Required. See types below.
id: string # Optional. Short alias.
rebuild_when_changed: string[] # Optional. Paths that trigger rebuild.
per_stage: boolean # Optional. Default: false.
architecture: string # Optional. Default: "linux/amd64".
host_size: string # Optional. Default: "small".
dependencies: string[] # Optional. System deps.
params: {...} # Required. Type-specific parameters.

See Artifacts.

DEVRAMPS:DOCKER:BUILD

params:
dockerfile: string # Required. Path to Dockerfile.
build_root: string # Optional. Docker build context.
args: string[] # Optional. Build arguments.
env: Record<string, string> # Optional. Environment variables.

DEVRAMPS:BUNDLE:BUILD

params:
build_commands: string # Required. Shell commands (multiline).
file_path: string # Required. Output file path.
env: Record<string, string> # Optional. Environment variables.

DEVRAMPS:DOCKER:IMPORT

params:
source_image_url: string # Required. ECR image URI. Supports expressions.
timeout_minutes: number # Optional. Default: 15. Range: 1-60.

DEVRAMPS:BUNDLE:IMPORT

params:
source_s3_url: string # Required. S3 URI. Supports expressions.
source_account: string # Required. Source AWS account ID.
source_region: string # Required. Source AWS region.
timeout_minutes: number # Optional. Default: 15. Range: 1-60.

Step Type Quick Reference

Infrastructure

TypeKey Params
DEVRAMPS:TERRAFORM:SYNTHESIZErequires_approval, source, variables

Deploy

TypeKey Params
DEVRAMPS:ECS:DEPLOYcluster_name, service_name, reference_task_definition, images
DEVRAMPS:EKS:DEPLOYcluster_name, deployment_name, containers
DEVRAMPS:EKS:HELMcluster_name, release_name, chart_path or chart_repository + chart_name
DEVRAMPS:CODEDEPLOY:DEPLOYapplication_name, deployment_group_name, artifact_name
DEVRAMPS:EC2:DEPLOYinstance_id, artifact_name, deployment_method, commands

Script & Database

TypeKey Params
DEVRAMPS:SCRIPT:EXECUTEscript_path
DEVRAMPS:DATABASE:MIGRATEdatabase_identifier, migration_command

Approval

TypeKey Params
DEVRAMPS:APPROVAL:BAKEduration_minutes
DEVRAMPS:APPROVAL:TESTtestCommand

Custom

TypeKey Params
CUSTOM:*Any params defined by your step schema.

See the Step Reference for full parameter documentation per step type.

Expression Quick Reference

ExpressionDescription
${{ stage.name }}Stage name
${{ stage.account_id }}AWS account ID
${{ stage.region }}AWS region
${{ stage.artifacts["Name"].image_url }}Docker artifact image URL
${{ stage.artifacts["Name"].s3_url }}Bundle artifact S3 URL
${{ stage.secrets["Name"] }}Stage secret
${{ pipeline.name }}Pipeline name
${{ pipeline.slug }}Pipeline slug
${{ organization.name }}Organization name
${{ organization.slug }}Organization slug
${{ organization.secrets["Name"] }}Organization secret
${{ trigger.sha }}Git commit SHA
${{ trigger.branch }}Git branch
${{ trigger.revision }}Deployment revision number
${{ vars.key }}Stage variable
${{ steps.id.field }}Step output (by ID)
${{ steps["Name"].field }}Step output (by name)
${{ secret("Name") }}Organization secret (function)
${{ stage_secret("Name") }}Stage secret (function)

See Expressions for the full reference.