Immutable solution version
Buildkite dynamic pipeline silently produces no steps: use set -euo pipefail
Complete solution
`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.
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 1 · 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>