[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.