I can think of a couple of use cases at my company where I’d want a certain plugin to always run on a specific queue.
It would be cool if I could somehow tie plugins to a queue. So if someone in any given build step invokes a plugin, but does not specify an agent queue for that step, during pipeline upload, that step would “magically” be tied to a given queue.
Interesting idea! We’ve considered the idea of agent-level plugins that you’d configure via the agent configuration vs a pipeline configuration.
This can generally be accomplished with a “hooks” repo referenced from agent hooks like https://github.com/buildkite/aws-secrets-manager-agent-hooks/blob/master/INSTALL.md.
The issue I see with calling them “plugins” is that it gets confusing how the semantics differ.
Another idea for you @moensch, might be to have a plugin that’s designed to be used as the pipeline upload step, and it knows how to do the pinning to a queue?
steps:
- label: ":pipeline:
plugins:
- my-pipeline-upload-plugin#v1.0.0: ~
The plugin could define it’s own command
hook, and do the buildkite-agent pipeline upload
with the queue pinned as you need.