Hi BK Team!
I have an issue with targeting specific agents in my pipelines.
There are several pipelines. Which pipelines are uploaded is determined based on the monorepo-diff#1.3.2
plugin. For example:
---
steps:
- label: "Triggering builds"
plugins:
- chronotc/monorepo-diff#1.3.2:
diff: "git diff --name-only HEAD~1"
watch:
- path:
- "app1/"
config:
command: "buildkite-agent pipeline upload app1/.buildkite/app1.pipeline.yml"
agents:
queue: default
- path:
- "app2/"
config:
command: "buildkite-agent pipeline upload app2/.buildkite/linter.pipeline.yml"
agents:
queue: linter
Example entrypoint to my pipelines is above.
- I need every step in
app1.pipeline.yml
to run on the same agent, on the same machine, so it has the following structure:
---
agents:
name: "${BUILDKITE_AGENT_NAME}"
steps:
- name: stage1
- wait
- name: stage2
- wait
- name: stage3
- wait
- name: stage4
- wait
This works. stages 1-4 all run on buildkite-#
, for example. From stage1>Timeline in the BK UI:
The issue manifests in the 2nd pipeline, linter.pipeline.yml
, the linter
queue is properly selected for the linter.pipeline.yml
step itself, however, the steps within that pipeline are stuck waiting indefinitely to be picked up because the name=buildkite-7
tag restriction seems to have snuck into this pipeline, even though the agent queue is different (screenshot above shows buildkite-3, but I’ve just mixed those up here. The stuck build and the build that just ran are both targeting an agent with name=buildkite-7
(this 2nd one shouldn’t be doing that):
(the name of my agent serving this queue is buildkite-esxi
)
The linter.pipeline.yml
itself doesn’t have a name: set at the top level, yet it is being targeted anyway as you can see in the screenshot above. Here is the linter.pipeline.yml
, which is only targeting the agent by queue:
---
agents:
queue: "linter"
steps:
- group: ":broom: app2 Linter"
steps:
- label: "check-js"
command:
- cd app2/
- make check-js
- label: "check-formatting"
command:
- cd app2/
- make check-formatting
- label: "check-profiles"
command:
- cd app2/
- make check-profiles
- label: "check-version"
command:
- cd app2/
- make check-version
- label: "check-metadata-version"
command:
- cd app2/
- make check-metadata-version
Q: How do I get this name=buildkite-7
out of my linter.pipeline.yml
step agent targeting, when I haven’t defined it?
Agents:
- 7 independent agents, each on their own machine. Tags from EC2. (
queue=default
) - names arebuildkite-[1-7]
- 6 spawned agents, on 1 single machine. Tags local from
buildkite-agent.cfg
file, (queue=linter
) - name isbuildkite-esxi
This is my first time posting, so please let me know what other details are needed and I can send those! Thanks for your time BK peeps.