Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What algorithm does buildbot use to assign builders to slaves?

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).

like image 884
flybywire Avatar asked Feb 09 '10 13:02

flybywire


1 Answers

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.

like image 160
Nicolás Avatar answered Sep 20 '22 10:09

Nicolás