Pipeline Commands - Run and Inspect Bitbucket Pipelines
Manage Bitbucket Pipelines (CI/CD) — list runs, inspect a run and its steps, trigger and stop runs, and read step logs.
Pipeline commands operate at repository scope. Run them inside a cloned
Bitbucket repository, or pass -w, --workspace <workspace> and
-r, --repo <repo> explicitly.
Global options available on all pipeline commands: --json [fields],
--jq <expression>, --no-color, --no-unicode, --no-truncate,
--locale <locale>, -w, --workspace, -r, --repo.
An <id> is either the build number from the UI (42) or the pipeline UUID
with braces ({a1b2c3d4-...}). --json output is wrapped in an envelope keyed
by workspace and repoSlug; the # → comments below show each shape.
bb pipeline list
Section titled “bb pipeline list”List pipeline runs, newest first.
bb pipeline list [options]Options
Section titled “Options”| Option | Description |
|---|---|
--status <status> |
Filter by status: PARSING, PENDING, PAUSED, HALTED, BUILDING, ERROR, PASSED, FAILED, STOPPED, UNKNOWN (case-insensitive) |
--branch <branch> |
Filter by target branch |
--sort <attribute> |
Sort attribute: created_on, run_creation_date, creator.uuid; prefix with - for descending (default: -created_on) |
--limit <number> |
Maximum number of runs (default: 25) |
--all |
List all runs (overrides --limit) |
Examples
Section titled “Examples”bb pipeline listbb pipeline list --status FAILEDbb pipeline list --branch main --limit 50
# → { workspace, repoSlug, [status], [branch], sort, count, pipelines }bb pipeline list --json
# Build numbers of recent failures, via built-in --jqbb pipeline list --status FAILED --json --jq '.pipelines[].build_number'-
Columns: build number, status (colored), ref (truncated to 40 characters; disable with
--no-truncate), trigger, created date, and duration for completed runs. -
--limitis enforced across paginated responses. When results are capped the CLI printsShowing 25 pipelines. Use --limit <n> or --all to see more.(suppressed with--json). -
--statusis upper-cased before validation, sofailedandFAILEDboth work.--sortis matched case-sensitively. -
An invalid value lists the allowed ones and, when the input is close to a valid one, suggests it:
--status must be one of: PARSING, PENDING, PAUSED, HALTED, BUILDING, ERROR, PASSED, FAILED, STOPPED, UNKNOWN(Did you mean FAILED?)A
--sortvalue that differs only in case gets(Values are case-sensitive — use created_on.)instead of a suggestion.
bb pipeline view
Section titled “bb pipeline view”View run details and a per-step summary. <id> is a build number or UUID.
bb pipeline view <id> [options]Examples
Section titled “Examples”bb pipeline view 42bb pipeline view {a1b2c3d4-0000-0000-0000-000000000000}
# → { workspace, repoSlug, pipeline, steps }bb pipeline view 42 --json
# Status name of the runbb pipeline view 42 --json --jq '.pipeline.state.result.name // .pipeline.state.name'- The human view shows number, UUID, status, ref, the custom pipeline selector
when the run used one (
Pipeline:), trigger, creator, created/completed timestamps, duration, and a step table (index, name, status, duration). - The step index is the value you pass to
bb pipeline logs --step. - The step table and the JSON
stepsarray are complete even on large runs — the CLI follows the steps endpoint’s pagination. - An unknown id returns
Pipeline 42 not found in acme/api.
bb pipeline run
Section titled “bb pipeline run”Trigger a pipeline run on a branch.
bb pipeline run [options]Options
Section titled “Options”| Option | Description |
|---|---|
-b, --branch <branch> |
Branch to run on (default: current git branch) |
--commit <hash> |
Run against a specific commit on the branch |
-p, --pipeline <name> |
Custom pipeline definition from bitbucket-pipelines.yml |
--var <key=value...> |
Pipeline variable; repeatable, value may contain = |
Examples
Section titled “Examples”# Run the default pipeline for the current branchbb pipeline run
bb pipeline run --branch mainbb pipeline run --pipeline deploy-prod --var ENV=prod --var DRY_RUN=falsebb pipeline run --branch main --commit abc123def456
# → { workspace, repoSlug, pipeline }; grab the build numberbb pipeline run --branch main --json --jq '.pipeline.build_number'- Outside a git repository,
--branchis required (the error tells you so). --pipeline <name>selects acustom:pipeline defined inbitbucket-pipelines.yml.- Variables are sent unsecured; secured variables must be configured in repository settings.
- On success the CLI prints the build number plus ready-to-paste
bb pipeline view/bb pipeline logscommands.
bb pipeline stop
Section titled “bb pipeline stop”Stop a running pipeline. <id> is a build number or UUID.
bb pipeline stop <id> [options]Examples
Section titled “Examples”bb pipeline stop 42
# → { workspace, repoSlug, pipelineId, stopped }bb pipeline stop 42 --json --jq '.stopped'- No
--yesconfirmation is required: stopping CI is reversible — rerun withbb pipeline run.
bb pipeline logs
Section titled “bb pipeline logs”Print the raw log of a pipeline step. <id> is a build number or UUID.
bb pipeline logs <id> [options]Options
Section titled “Options”| Option | Description |
|---|---|
-s, --step <uuid-or-index> |
Step to fetch: a step UUID (braces optional) or a 1-based index |
Examples
Section titled “Examples”# Single-step runs need no --stepbb pipeline logs 42
bb pipeline logs 42 --step 2bb pipeline logs 42 --step {a1b2c3d4-0000-0000-0000-000000000000}bb pipeline logs 42 --step a1b2c3d4-0000-0000-0000-000000000000
# → { workspace, repoSlug, pipelineId, stepUuid, log }bb pipeline logs 42 --json --jq '.log'-
With exactly one step, it is selected automatically.
-
With several steps and no
--step, the CLI lists the steps (index, name, status, UUID) instead of guessing. With--jsonit returns{ workspace, repoSlug, pipelineId, count, steps }so scripts and agents can pick a step UUID and call again. -
Every step is selectable even on large runs — the CLI follows the steps endpoint’s pagination, so indexes and UUIDs beyond the API’s default page size of 10 work.
-
The log is printed verbatim to stdout, so it pipes cleanly into
grep,less, or a file. -
Four failure modes — a queued run with no steps yet, an out-of-range
--stepindex, a--stepUUID that matches nothing, and a step that has produced no log yet — each get their own message, in that order:Pipeline 42 has no steps yet. It may still be queued — check with `bb pipeline view 42`.--step index 9 is out of range; the pipeline has 3 steps.No step matching 'abc' found. Available steps: 1 ({uuid-1}), 2 ({uuid-2}).No log found for step {uuid-2} of pipeline 42. The step may not have started yet.
See also
Section titled “See also”- Scripting & Automation — JSON envelopes,
--jq, exit codes. - CI/CD Integration — using
bbinside pipelines.