Can I set two queues for a step to use, but only choose the second if none are available in the first?

Can I set two queues for a step to use, but only choose the second if none are available in the first?

Hi @nathan.pierce! Nope sorry, there’s no way to set two queues for a step, only two queues for an agent. What’s context/story behind you wanting to do that, so we can either see more clearly what we’re missing, or perhaps find another way?

There’s also agent priorities, which you can use to make sure some agents are preferred over others when they’re being assigned, but I’m not sure if it’s suits the problem you’re trying to solve: https://buildkite.com/docs/agent/v3/prioritization

Sure, so we’re using Anka to handle our mac builder/tester fleet and have a build step that should run on a host with only one buildkite agent so that it can use the full 12 cores it has (it’s a mac mini). Though, if all other 12 core mac minis are in use, we don’t want to block it running on a 6 core host that has two agents running. On the flip side of that, we would want jobs that normally run on the 6 cores hosts to prioritize the 12 core last and use them only when absolutely necessary.

Macs are expensive and running a single buildkite agent just for a single step is a massive waste. I want to assure teams I support with the anka fleet that if they’re not running a ton of 6 core steps, the 12 cores will always pick up the longest and most intense build step and they will then be getting the fastest build times possible.

Should this be a feature request @tim ?

@nathan.pierce I can’t think of any combination of queues or priorities that would help you achieve that one. It’s a tricky one :thinking:

Posting to #feature-requests with that context, and perhaps a stab at a pipeline.yml that could work for you, would be great!