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.