The c['builders']
key is a list of objects giving configuration for the
Builders. For more information, See Builder. The class definition for the
builder configuration is in buildbot.config
. In the configuration file,
its use looks like:
from buildbot.config import BuilderConfig c['builders'] = [ BuilderConfig(name='quick', slavenames=['bot1', 'bot2'], factory=f_quick), BuilderConfig(name='thorough', slavename='bot1', factory=f_thorough), ]
The constructor takes the following keyword arguments:
name
slavename
slavenames
c['slaves']
list. Each
buildslave can accomodate multiple Builders. The slavenames
parameter
can be a list of names, while slavename
can specify only one slave.
factory
buildbot.process.factory.BuildFactory
instance which
controls how the build is performed. Full details appear in their own
section, See Build Factories. Parameters like the location of the CVS
repository and the compile-time options used for the build are
generally provided as arguments to the factory's constructor.
Other optional keys may be set on each Builder:
builddir
name
with some characters escaped. Each builder must have a unique build
directory.
slavebuilddir
builddir
. If a slave is connected to multiple builders
that share the same slavebuilddir
, make sure the slave is set to
run one build at a time or ensure this is fine to run multiple builds from
the same directory simultaneously.
category
nextSlave
Builder
object which is assigning a new job, and a list of SlaveBuilder
objects. The function should return one of the SlaveBuilder
objects, or None
if none of the available slaves should be
used. This function can optionally return a Deferred which should
fire with the same results.
nextBuild
Builder
object
which is assigning a new job, and a list of BuildRequest
objects
representing pending build requests, sorted by increasing submission time. .
The function should return one of the BuildRequest
objects, or
None
if none of the pending builds should be started. This function can
optionally return a Deferred which should fire with the same results.
locks
env
ShellCommand
will override
variables of the same name passed to the Builder.
For example, if you have a pool of identical slaves, it is often easier to manage variables like PATH from Buildbot, rather than manually editing it inside of the slaves' environment.
f = factory.BuildFactory f.addStep(ShellCommand( command=['bash', './configure'])) f.addStep(Compile()) c['builders'] = [ BuilderConfig(name='test', factory=f, slavenames=['slave1', 'slave2', 'slave3', 'slave4'], env={'PATH': '/opt/local/bin:/opt/app/bin:/usr/local/bin:/usr/bin'}), ]
mergeRequests
properties