Learn · Step types and pipeline structure
The step types
Buildkite gives you a small set of step types. Most pipelines use two or three of them.
Command steps run something on an agent. This is the workhorse — almost every step you write is one of these.
steps:
- label: ":test_tube: Test"
command: make test
Wait steps are a barrier. Nothing after a wait starts until everything
before it has finished successfully.
steps:
- command: make build
- wait
- command: make test
Block steps pause the build until a human unblocks it in the UI. This is how you gate a deploy on approval.
steps:
- block: ":rocket: Release?"
prompt: "Ship this to production?"
Input steps also pause for a human, but to collect values rather than simply to approve.
Trigger steps start a build on a different pipeline. Useful when a downstream system has its own pipeline and its own owners.
Group steps collapse a set of steps into one visual unit in the UI. Purely presentational — grouping changes nothing about how steps run.
The distinction worth holding onto: wait blocks on work, block blocks on
a person. Reaching for the wrong one is the most common early mistake.
A deploy must not run until someone on the release team approves it in the Buildkite UI. Which step type expresses that?
Sign in to answer and record your progress.