Skip to main content

Step Library

Last updated on

Harness 3.0 ships with 109+ pre-built step templates across CI, CD, IaCM, and CV modules. Steps are the building blocks of pipelines — each step is a versioned, containerized action that runs inside a pipeline stage. The step library uses a template-based architecture where each step is defined in YAML with typed inputs, layout configuration, and containerized execution.

109+ total steps5 categories (CI, CD, IaCM, CV, Integration)
All versioned (semver)Containerized execution

CI Steps

Continuous Integration steps handle building, testing, scanning, caching, and publishing artifacts. These steps run inside CI stages and support both Harness Cloud and self-hosted build infrastructure.

See CI Steps for the full reference.

Step NameDescription
Build & Push to DockerBuild a Docker image and push to Docker registry
Build & Push to ECRBuild and push to AWS ECR
Build & Push to GARBuild and push to Google Artifact Registry
Build & Push to Harness ARBuild and push to Harness Artifact Registry
Build IntelligenceAuto-cache build outputs for faster builds
Git CloneClone repository code
Run (v2)Execute shell scripts
Bandit Security ScanPython security vulnerability scanning
Gitleaks Security ScanSecret detection scanning
SBOM OrchestrationGenerate/ingest Software Bill of Materials
Save/Restore Cache (S3)Cache to/from AWS S3
Save/Restore Cache (GCS)Cache to/from Google Cloud Storage
Save/Restore Cache (Harness)Cache to/from Harness storage
Upload Artifacts to S3Upload build artifacts to S3
Upload Artifacts to GCSUpload build artifacts to GCS
Upload to JFrog ArtifactoryUpload Docker images to JFrog

Kubernetes Steps

Kubernetes steps handle deploying, rolling back, and managing applications on Kubernetes clusters across multiple deployment strategies.

See Kubernetes Steps for the full reference.

Step NameDescription
K8s Rolling DeployRolling deployment with steady state check
K8s Rolling RollbackRollback a rolling release
K8s Blue-Green DeployCreate services and pods for blue-green
K8s Blue-Green SwapSwap service selectors between stages
K8s Blue-Green Scale DownScale down stage environment
K8s Canary DeployDeploy canary subset of pods
K8s Canary DeleteClean up canary deployment
K8s ApplyApply manifests to cluster
K8s DeleteDelete resources from cluster
K8s ScaleScale workloads up/down
K8s PatchPatch workload resources
K8s DiffCompare cluster state with manifests
K8s Dry RunValidate manifests without applying
K8s Steady State CheckCheck workload status
K8s Traffic RoutingShift traffic between versions
Helm Deploy BasicDeploy chart with basic strategy
Helm Blue-Green DeployBlue-green Helm deployment
Helm Canary DeployCanary Helm deployment
Helm RollbackRoll back a Helm release
Helm DeleteUninstall a Helm release

Cloud Steps

Cloud steps handle deploying and managing applications on cloud-native services including ECS, Google Cloud Run, Azure Functions, AWS CDK, SAM, and Serverless Framework.

See Cloud Steps for the full reference.

Step NameDescription
ECS Blue-Green DeployECS blue-green with target group swap or traffic shift
ECS Run TaskExecute an ECS task
Google Cloud Run DeployDeploy to Google Cloud Run
Google Cloud Run RollbackRollback a Cloud Run revision
Google Cloud Run Traffic ShiftShift traffic between Cloud Run revisions
Google Cloud Run JobExecute a Cloud Run job
Azure Function DeployDeploy Azure Functions
Azure Function RollbackRollback Azure Functions deployment
AWS CDK DeployDeploy infrastructure with AWS CDK
AWS CDK DestroyTear down AWS CDK stacks
AWS SAM BuildBuild Serverless Application Model artifacts
AWS SAM DeployDeploy Serverless Application Model stacks
Serverless DeployDeploy with Serverless Framework
Serverless PackagePackage Serverless Framework application
Serverless RollbackRollback Serverless Framework deployment
SSHExecute shell on remote host
WinRMExecute PowerShell on remote host
EmailSend email notifications

IaCM Steps

Infrastructure as Code Management steps handle provisioning and managing infrastructure using Terraform, OpenTofu, and related tooling. These steps provide first-class support for infrastructure lifecycle operations within pipelines.

See IaCM Steps for the full reference.

Step NameDescription
Terraform StepRun Terraform commands (init, plan, apply, destroy, etc.)
OpenTofu StepRun OpenTofu commands
TFLint StepRun TFLint for Terraform linting
Tofu Module TestTest OpenTofu modules

Integration Steps

Integration steps connect pipelines with external services for HTTP requests, ticketing systems, approvals, and CI/CD tool orchestration.

See Integration Steps for the full reference.

Step NameDescription
HTTP StepExecute HTTP requests with assertions and output variables
Jira CreateCreate Jira issues
Jira UpdateUpdate Jira issues
Jira ApprovalApprove/reject via Jira
ServiceNow CreateCreate ServiceNow tickets
ServiceNow UpdateUpdate ServiceNow tickets
ServiceNow ApprovalApprove/reject via ServiceNow
ServiceNow Import SetImport records
Jenkins BuildExecute Jenkins jobs
Bamboo BuildExecute Bamboo plans
AI VerifyAI-based verification with intelligent anomaly detection and log analysis

How Steps Work

Every step in the Harness 3.0 step library follows a consistent template-based architecture. Understanding the anatomy of a step helps you use steps effectively and troubleshoot issues when they arise.

Versioned Templates — Each step is a versioned template (semver) stored in the template library. You reference steps by name and version (e.g., buildAndPushToDocker@1.0.0).

Typed Inputs — Steps declare typed inputs (string, boolean, select, connector, array, key-value-pairs, list) that are validated before execution.

Layout Configuration — Steps have a layout configuration that controls how the UI renders input fields in the visual pipeline editor.

Containerized Execution — Steps execute in containers (Docker images like plugins/kaniko, harnessdev/helm-deploy:0.0.1, etc.).

Strategies — Steps can be composed into strategies (groups of steps for deploy workflows such as rolling, canary, or blue-green).

Conditional Execution — Steps support conditional execution via if expressions, enabling dynamic pipeline behavior based on runtime context.

Using a Step in a Pipeline

Reference a step by its template name and version using the uses keyword, and pass inputs via the with block.

step-usage.yaml
pipeline:
stages:
- name: build
steps:
- name: build-docker-image
uses: buildAndPushToDocker@1.0.0
with:
connector: account.dockerhub
repo: myorg/myapp
tags:
- latest
- <+pipeline.sequenceId>

Step Template Anatomy

Behind every step in the library is a template definition that declares the step's identity, inputs, layout, and container execution configuration. See Step Templates for a full reference.

step-template-anatomy.yaml
template:
id: stepName
name: Step Display Name
version: 1
module:
- ci
inputs:
connector:
type: connector
label: Docker Connector
required: true
tags:
type: array
label: Tags
required: true
layout:
- connector
- tags
step:
run:
container:
image: plugins/kaniko
env:
PLUGIN_TAGS: ${{inputs.tags}}
Step Versioning

Each step in the library is independently versioned using semver. Pin specific versions in your pipelines for stability, or use @latest for the newest version.