Buildkite Agent Job Queues

Each pipeline has the ability to separate jobs using queues. This allows you to isolate a set of jobs and/or agents, making sure they only run jobs that are intended to be assigned to them.

Common use cases for queues include deployment agents, and pools of agents for specific pipelines or teams.

The default queue

All agents include an extra default tag of queue=default.

For example, the following empty query pattern matches the 6 agents running the default queue:

Agent Selector showing all but the deploy selected

Setting an agent’s queue

An agent’s queue is configured using an agent tag, which can be changed using the command line flag, an environment variable, or the config file.

Agents can listen on a single queue or on multiple queues. You can add as many extra queue tags as are required.

In the below example using the --tags flag of the buildkite-agent start command, two queues are specified which will result in the agent listening on both the building and testing queues:

buildkite-agent start --tags "queue=building,queue=testing"
Screenshot of an agent's tags showing both building and testing queues

Targeting a queue

Just as you would target agents using a normal agent tag, you can target specific queues using queue=name in your build pipeline query rules.

For example, the following build step matches only agents running the deploy queue (and ignores the agents running the default queue):

Agent Selector showing only the deploy selected