Buildkite Certification

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.

Check

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.