Skip to content

Step Types

Every step in a job has a type that determines what it does and what parameters it exposes in the configuration panel.

Shell Command

Run any shell script on the runner.

ParameterDescription
Shellbash, sh, zsh, powershell, cmd
ScriptThe script body
Working directoryOptional — defaults to the repository root

Example use cases: custom install scripts, file manipulation, calling CLIs not covered by other step types.

bash
# Example script
echo "Building version $VERSION"
npm ci
npm run generate

Docker

Run Docker operations on the runner.

OperationWhat it does
builddocker build an image from a Dockerfile
rundocker run a container
pushPush an image to a registry
pullPull an image from a registry
composeRun docker compose up

Common parameters: image name, tag, Dockerfile path, build args, registry credentials (from your credential vault).


Git

Perform Git operations on the runner.

OperationWhat it does
checkoutCheck out a branch, tag, or SHA
cloneClone a repository
pullPull latest changes
fetchFetch remote refs
tagCreate and optionally push a tag
pushPush commits or tags

TIP

Use the checkout operation as the first step in every job to ensure the runner has the latest code.


Test

Run a test suite.

FrameworkLanguage
jestJavaScript / TypeScript
vitestJavaScript / TypeScript
pytestPython
go_testGo
cargo_testRust
rspecRuby
phpunitPHP
junitJava

Parameters: test command override, coverage flag, output format, working directory.


Build

Build a project artifact.

ToolLanguage / Platform
npm / yarn / pnpmJavaScript / TypeScript
mavenJava
gradleJava / Kotlin / Android
cargoRust
goGo
dotnet.NET
pipPython

Parameters: build command, output directory, environment variables.


Deploy

Deploy a built artifact to a target environment.

TargetDescription
kubernetesApply manifests with kubectl
aws_ecsUpdate an ECS service
aws_lambdaDeploy a Lambda function
sshDeploy over SSH (scp + remote command)
vercelDeploy to Vercel
netlifyDeploy to Netlify
herokuDeploy to Heroku
ftpUpload via FTP/SFTP

Parameters vary by target. Credentials are selected from your credential vault.


Notification

Send a message when a step is reached (typically at the end of a pipeline, or on failure).

ChannelDescription
slackPost to a Slack channel via webhook
teamsPost to a Microsoft Teams channel
discordPost to a Discord channel via webhook
emailSend an email via SMTP

Parameters: webhook URL or SMTP credentials (from vault), message template, channel name.


Step configuration options (all types)

Every step, regardless of type, also has these common options:

OptionDescription
LabelHuman-readable name shown on the canvas
DescriptionOptional notes about what this step does
Environment variablesKey-value pairs injected at runtime
SecretsReference credentials from the vault by name
Continue on errorIf enabled, the job continues even if this step fails

Released under the MIT License.