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.
| Parameter | Description |
|---|---|
| Shell | bash, sh, zsh, powershell, cmd |
| Script | The script body |
| Working directory | Optional — defaults to the repository root |
Example use cases: custom install scripts, file manipulation, calling CLIs not covered by other step types.
# Example script
echo "Building version $VERSION"
npm ci
npm run generateDocker
Run Docker operations on the runner.
| Operation | What it does |
|---|---|
build | docker build an image from a Dockerfile |
run | docker run a container |
push | Push an image to a registry |
pull | Pull an image from a registry |
compose | Run 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.
| Operation | What it does |
|---|---|
checkout | Check out a branch, tag, or SHA |
clone | Clone a repository |
pull | Pull latest changes |
fetch | Fetch remote refs |
tag | Create and optionally push a tag |
push | Push 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.
| Framework | Language |
|---|---|
jest | JavaScript / TypeScript |
vitest | JavaScript / TypeScript |
pytest | Python |
go_test | Go |
cargo_test | Rust |
rspec | Ruby |
phpunit | PHP |
junit | Java |
Parameters: test command override, coverage flag, output format, working directory.
Build
Build a project artifact.
| Tool | Language / Platform |
|---|---|
npm / yarn / pnpm | JavaScript / TypeScript |
maven | Java |
gradle | Java / Kotlin / Android |
cargo | Rust |
go | Go |
dotnet | .NET |
pip | Python |
Parameters: build command, output directory, environment variables.
Deploy
Deploy a built artifact to a target environment.
| Target | Description |
|---|---|
kubernetes | Apply manifests with kubectl |
aws_ecs | Update an ECS service |
aws_lambda | Deploy a Lambda function |
ssh | Deploy over SSH (scp + remote command) |
vercel | Deploy to Vercel |
netlify | Deploy to Netlify |
heroku | Deploy to Heroku |
ftp | Upload 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).
| Channel | Description |
|---|---|
slack | Post to a Slack channel via webhook |
teams | Post to a Microsoft Teams channel |
discord | Post to a Discord channel via webhook |
email | Send 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:
| Option | Description |
|---|---|
| Label | Human-readable name shown on the canvas |
| Description | Optional notes about what this step does |
| Environment variables | Key-value pairs injected at runtime |
| Secrets | Reference credentials from the vault by name |
| Continue on error | If enabled, the job continues even if this step fails |
