Class Builder
Jellyable
--+
|
Serializable
--+
|
Referenceable
--+
|
Builder
I manage all Builds of a given type.
Each Builder is created by an entry in the config file (the
c['builders'] list), with a number of parameters.
One of these parameters is the buildbot.process.factory.BuildFactory
object that is associated with this Builder. The factory is responsible
for creating new Build
objects. Each Build object defines
when and how the build is performed, so a new Factory or Builder should
be defined to control this behavior.
The Builder holds on to a number of base.BuildRequest
objects in a list named
.buildable
. Incoming BuildRequest objects will be added to
this list, or (if possible) merged into an existing request. When a slave
becomes available, I will use my BuildFactory
to turn the
request into a new Build
object. The
BuildRequest
is forgotten, the Build
goes into
.building
while it runs. Once the build finishes, I will
discard it.
I maintain a list of available SlaveBuilders, one for each connected
slave that the slavenames
parameter says we can use. Some of
these will be idle, some of them will be busy running builds for me. If
there are multiple slaves, I can run multiple builds at once.
I also manage forced builds, progress expectation (ETA) management,
and some status delivery chores.
I am persisted in BASEDIR/BUILDERNAME/builder
, so I can
remember how long a build usually takes to run (in my
expectations
attribute). This pickle also includes the buildbot.status.builder.BuilderStatus
object, which remembers the set of historic builds.
Method Summary |
|
__init__ (self,
setup,
builder_status)
|
|
__getstate__(self)
|
|
__repr__(self)
|
|
__setstate__(self,
d)
|
twisted.internet.defer.Deferred
|
attached (self,
slave,
remote,
commands)
This is invoked by the BotPerspective when the self.slavename bot
registers their builder. |
|
buildFinished (self,
build,
sb)
This is called when the Build has finished (either success or
failure). |
|
cancelBuildRequest(self,
req)
|
|
compareToSetup(self,
setup)
|
|
consumeTheSoulOfYourPredecessor (self,
old)
Suck the brain out of an old Builder. |
|
detached (self,
slave)
This is called when the connection to the bot is lost. |
|
fireTestEvent(self,
name,
with)
|
|
maybeStartBuild(self)
|
|
setBotmaster(self,
botmaster)
|
|
setExpectations (self,
progress)
Mark the build as successful and update expectations for the next
build. |
|
shutdownSlave(self)
|
|
startBuild (self,
build,
sb)
Start a build on the given slave. |
|
submitBuildRequest(self,
req)
|
|
updateBigStatus(self)
|
Inherited from Referenceable |
|
jellyFor (self,
jellier)
(internal) |
|
remoteMessageReceived (self,
broker,
message,
args,
kw)
A remote message has been received. |
Inherited from Serializable |
|
processUniqueID (self)
Return an ID which uniquely represents this object for this
process. |
Inherited from Jellyable |
|
getStateFor (self,
jellier)
|
__init__(self,
setup,
builder_status)
(Constructor)
-
- Parameters:
setup -
builder setup data, as stored in
BuildmasterConfig['builders']. Contains name, slavename(s),
builddir, factory, locks.
(type=dict)
builder_status
(type=buildbot.status.builder.BuilderStatus )
|
attached(self,
slave,
remote,
commands)
This is invoked by the BotPerspective when the self.slavename bot
registers their builder.
-
- Parameters:
slave -
the BotPerspective that represents the buildslave as a
whole
(type=buildbot.master.BotPerspective )
remote -
a reference to the buildbot.slave.bot.SlaveBuilder
(type=twisted.spread.pb.RemoteReference )
commands -
provides the slave's version of each RemoteCommand
(type=dict: string -> string, or None)
- Returns:
-
a Deferred that fires (with 'self') when the slave-side
builder is fully attached and ready to accept commands.
(type=twisted.internet.defer.Deferred )
|
buildFinished(self,
build,
sb)
This is called when the Build has finished (either success or
failure). Any exceptions during the build are reported with
results=FAILURE, not with an errback.
-
|
consumeTheSoulOfYourPredecessor(self,
old)
Suck the brain out of an old Builder.
This takes all the runtime state from an existing Builder and moves
it into ourselves. This is used when a Builder is changed in the
master.cfg file: the new Builder has a different factory, but we want
all the builds that were queued for the old one to get processed by the
new one. Any builds which are already running will keep running. The
new Builder will get as many of the old SlaveBuilder objects as it
wants.
-
|
detached(self,
slave)
This is called when the connection to the bot is lost.
-
|
setExpectations(self,
progress)
Mark the build as successful and update expectations for the next
build. Only call this when the build did not fail in any way that would
invalidate the time expectations generated by it. (if the compile
failed and thus terminated early, we can't use the last build to
predict how long the next one will take).
-
|
Instance Variable Details |
__implemented__
-
- Type:
-
Implements
- Value:
<implementedBy buildbot.process.builder.Builder>
|
|
__provides__
-
- Type:
-
ClassProvides
- Value:
<zope.interface.declarations.ClassProvides object at 0x4072bc2c>
|
|
expectations
-
- Type:
-
NoneType
- Value:
|
START_BUILD_TIMEOUT
-
- Type:
-
int
- Value:
|