The following features is strongly necessary for us:
1) Agent option, defining, which configurations should be serviced by this agent. I think, agent must have select box, containing two options
(.) Run All compatible configurations EXCEPT (this is default option)
<list of configurations, empty by default>
(.) Run only selected configurations
<list of configurations, empty by default>
2) Build configuration option, defining, which build agents can build this build configuration. Selectbox with two options
(.) Run on all compatible agents, except (this is default option)
<list of agents, empty by default>
(.) Run on only selected agents
<list of agents, empty by default>
Typical usecase:
We have dotTraceTests_amd64 build agent that is necessary to run 4 configurations - dotTrace 2.0 and Main performance and stress tests. This agent must NOT run any other configurations, because
1) running other configurations can affect performance tests results.
2) running other configurations will make running tests less frequent.
On other hand, dotTrace 2.0 and Main performance and stress tests configurations must run ONLY on agent dotTraceTests_amd64.
The solution above has a drawback - if we have multiple agents for running dotTrace builds, for example, and we add another dotTrace build, we would have to add this new build on each agent.
My solution allows to avoid repeated reconfiguration.
Some subset of the feature can be easily presented as agent-groups.