I am using the experimental Buildkite Clusters feature, and it doesn’t seem to support a simple “wait” step.
This is the entirety of the pipeline I’m trying to run (I’ve defined it directly within the pipeline, but it also fails when run via an pipeline upload):
steps:
- label: ':wave: Hello world 1'
command:
- echo "Hello world"
agents:
queue: default
- label: ':wave: Hello world 2'
command:
- echo "Hello world"
agents:
queue: default
- wait
- label: ':wave: Goodbye world'
command:
- echo "Goodbye world"
agents:
queue: default
I have created agents listening to the default queue within the cluster, as well as have agent listening to the default queue outside the cluster (i.e. no cluster).
This pipeline runs fine when the pipeline is set to target “No cluster”. However, when I change it to point to my Buildkite cluster and run the pipeline, Buildkite fails it immediately, not even letting the job get queued up (i.e. it doesn’t show the run attempt in the list of builds). Instead, BuildKite’s UI shows the error No queue specified
.
If I remove the - wait
line, it runs fine within the Buildkite cluster (although obviously without the wait).
Leaving the wait line in, and changing the pipeline back to “No cluster” lets this step work immediately.
I’ve tried changing it to say
- wait:
agents:
queue: default
but this is rejected because agents
is not a valid attribute for a wait step.
On a related note, I’ve found that the block
step does not work either. Replacing the wait
above with:
- block:
blocked_state: running
key: block-step
if: build.env("SKIP_INPUT") != "TRUE"
also result in a No queue specified
error.
Note that the queue name “default” doesn’t have anything to do with this; I discovered this issue when testing in a non-default named queue. It also does not have to do with being defined directly in the pipeline rather than in pipeline.yml; when I have BuildKite have the same pipeline uploaded via a build step, it runs the upload step but reports it as a failure, with the build output showing the same error No queue specified
.
Do Buildkite clusters support the wait or block steps step? If not, when will it be supported? Is the only workaround through specifying step dependencies explicitly (with no workaround for block steps)?