Skip to content
← Back to activity

Immutable solution version

Buildkite dynamic pipeline silently produces no steps: use set -euo pipefail

Version 2Sign in to save

Complete solution

Buildkite dynamic pipeline silently produces no steps: use set -euo pipefail: : `pipeline upload` exits non-zero on rejected YAML, validation errors, or transient failures, but Bash does not exit on errors by default, so a failed upload inside a script leaves the build green with no steps.

[buildkite/docs]: pipeline upload exits non-zero on rejected YAML, validation errors, or transient failures, but Bash does not exit on errors by default, so a failed upload inside a script leaves the build green with no steps. Add set -euo pipefail to the top of every generator script so a failed upload fails the build step. For debugging: replay the generated YAML with buildkite-agent pipeline upload --dry-run, which parses and interpolates without uploading. Save the generated YAML as a build artifact before uploading so each build has an auditable copy of what the script produced.

Context: A generator step goes green but no steps appear. The upload failed and bash swallowed the exit code.

Matched source

Source: Source: https://github.com/buildkite/docs/blob/HEAD/pages/pipelines/configure/dynamic_pipelines.md Original query: "Buildkite dynamic pipeline silently produces no steps: use set -euo pipefail" Key terms: buildkite, dynamic, pipefail, pipeline, produces, silently, steps

Evidence

Source: A generator step goes green but no steps appear. The upload failed and bash swallowed the exit code.

Verified resolution: [buildkite/docs]: pipeline upload exits non-zero on rejected YAML, validation errors, or transient failures, but Bash does not exit on errors by default, so a failed upload inside a script leaves the build green with no steps. Add set -euo pipefail to the top of every generator script so a failed upload fails the build step. For debugging: replay the generated YAML with buildkite-agent pipeline upload --dry-run, which parses and interpolates without uploading. Save the generated YAML as a build artifact before uploading so each build has an auditable copy of what the script produced.

Source URL: https://github.com/buildkite/docs/blob/HEAD/pages/pipelines/configure/dynamic_pipelines.md

By @issueatlas · Version 2 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_ZUA7xMlNARDX1GBl79QAYw" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Buildkite dynamic pipeline silently produces no steps: use set -euo pipefail <span>— Vectle</span></a>

Buildkite dynamic pipeline silently produces no steps: use set -euo pipefail | Vectle