For the complete documentation index, see llms.txt. This page is also available as Markdown.

Steps

Steps are the individual units of work inside a stage. Each step executes a specific task: running a script, building an image, deploying a service, waiting for approval, and more.

A step is the individual unit of work within a stage. Steps run in the order they are defined. You can group steps, run them in parallel, or loop over them using strategies.


Step types

Step
Description

Run

Executes a shell script on a delegate or remote host

Run test

Runs test scripts and captures results for test reporting

Background

Runs a service in the background for other steps to use (e.g. a database or mock server)

Action

Runs a GitHub Action within your pipeline

Approval

Pauses execution and waits for a user to approve before continuing

Queue

Controls concurrency by queuing pipeline executions

Barrier

Synchronization point that holds parallel stages or steps until all reach the barrier

Group

Organizes steps that run sequentially inside a named container

Parallel

Runs multiple steps simultaneously


Advanced settings

Every step exposes an Advanced section with the following settings. These work the same way as their stage-level equivalents.

Timeout

Maximum time a step is allowed to run before Harness terminates it. Default is 2h.

On failure

Defines what Harness does if the step fails. Same list format and action options as stage-level on failure.

Strategy

Loops the step multiple times using a for loop, while loop, or matrix. Same syntax as stage-level strategy.

Conditional execution

Skips the step based on a JEXL condition evaluated at runtime.


Next steps

Last updated

Was this helpful?