then using the API for “Get Pipeline”, I see the "steps": [{"type": "manual", "label": null}, ...] and when I run the pipeline, I see the two steps run in parallel (e.g. no dependency between the two).
Then, let’s set the pipeline to:
steps:
- "block"
- command: echo "hi mom"
then using the API, I see the "steps": [{"type": "manual", "label": null}, ...] and when I run the pipeline, I see the the second step blocked by the first.
Which means the pipeline itself is doing the right thing, but "type": "manual" in the API is ambiguous. Is it a Block step or is it an Input step?
(as a bonus test I tried a pipeline with - "manual" and when run it looks like its a Block step, so I think `- “input” likely should be coerced to an input step?)
It’s interesting how Buildkite’s API keeps things simple by treating all manual steps the same way. This makes the API easier to understand and use, which is always a plus for developers! By using a single field for all manual steps, the API stays consistent and avoids getting too complicated. This also makes it easier for Buildkite to add new types of manual steps in the future without causing problems for existing integrations.
Basically, the API focuses on the main idea of manual steps – needing a person to do something – while letting the specific details be handled in the YAML. This keeps things clean and user-friendly for everyone!
For more detailed information on Input and Block Steps, feel free to refer to Buildkite’s official documentation: