Skip to main content

Custom Steps Overview

Custom steps let you extend DevRamps with your own deployment logic. When the built-in step types don't cover your use case, you can write a custom step that runs any code you need.

Most users don't need custom steps

The built-in step types cover the most common deployment patterns (ECS, EKS, Terraform, CodeDeploy, EC2, scripts, and database migrations). Only create custom steps if the built-in types don't meet your needs. If you're just getting started with DevRamps, you can skip this section entirely.

When to Use Custom Steps

Use custom steps when you need to:

  • Deploy to a service or platform not covered by built-in steps (e.g., a third-party hosting provider).
  • Run custom validation or health checks.
  • Integrate with external systems (e.g., send a Slack notification, invalidate a CDN cache).
  • Implement organization-specific deployment patterns.

Architecture

Custom steps are organized into step registries:

┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│ Step Registry │ │ DevRamps │ │ Pipeline │
│ (GitHub repo) │────▶│ Builds & │────▶│ Uses │
│ │ │ Registers │ │ CUSTOM:* steps │
│ - SDK code │ │ your steps │ │ in deployments │
│ - Step logic │ │ │ │ │
└──────────────────┘ └──────────────────┘ └──────────────────┘
  1. You create a step registry -- a GitHub repository containing your custom step code, built with the DevRamps SDK.
  2. DevRamps builds and registers your steps whenever you push code to the registry repository.
  3. Your pipelines reference custom steps using the CUSTOM:* type prefix.

How Custom Steps Execute

When a pipeline step with a CUSTOM:* type runs:

  1. DevRamps provisions an isolated VM (EC2 instance).
  2. Your step registry code bundle is downloaded and extracted.
  3. Your step's execution logic runs with the provided parameters.
  4. Results are reported back to DevRamps (success, failure, or further actions like polling or approval).
  5. Step logs are streamed to the dashboard in real time.

Custom Step Capabilities

Custom steps support several execution patterns:

PatternDescription
Simple (one-shot)Run once and return a result. Best for quick operations.
PollingStart a long-running operation, then periodically check for completion. Best for deployments that take time.
ApprovalRequest manual approval before executing. Best for destructive or sensitive operations.
Polling + ApprovalCombine both patterns for maximum control.

Next Steps