I have a buildbot with some builders and two slave machines.
Some of the builders can run on one slave, and some of them can run on both machines.
What algorithm will buildbot use to schedule the builds? Will it notice that some builders can run on just one slave and that it should assign those that can run on both slaves to the less demanded one?
(I know buildbot can be used to run the same build on multiple architectures, say Windows, Linux, etc. We are using it to distribute builds for performance, because a single build is enough for us).
First it gets a list of all the slaves attached to that builder. Then it picks one at random. If the slave is already running more than slave.max_builds
builds, it picks another.
You can override the nextSlave
method on the Builder
to change the way slaves are chosen. The arguments passed to your function will be the Builder
object, and a list
of buildbot.buildslave.BuildSlave
objects. You have to return one of the items of the latter list, or None
.
来源:https://stackoverflow.com/questions/2229481/what-algorithm-does-buildbot-use-to-assign-builders-to-slaves