One of the goals at the top of the Distributed Builds wiki page is the ability to build on multiple platforms.
As we've discussed in some other threads and on irc, we need some way of telling Continuum which agent(s) to execute builds on. To me, it seems like this belongs as a field on the build environment, which is then selected on the build definition. That would be a good next step IMO -- to pin a particular build def to a particular agent through the environment. However, I don't want to lose the effect of distributed builds in parallel that we're getting from the current 'next available' selection. So, how does having groups of agents sound? Then you could associate a build environment with a pool of agents, and the next available one of those would be chosen. You might have a large group of identically configured Linux boxes that most of your builds can be distributed to. However, maybe there is one special project group that needs their own private pool to work on a top secret project. Another team might be targeting Solaris and want to do their builds on a pool of three Solaris boxes. And of course the project that only builds on Windows needs to always build on the one Windows agent you have reluctantly configured for them. ;) There's an additional requirement that the system admin must be able to limit which environments a project team is allowed to choose. While a project developer can modify build definitions and add new ones, he should not have free choice of *all* the available environments. This probably means adding an "Allowed Build Environments" field to the project group. How does that sound? Does anyone have a different idea of how this should work? -- Wendy
