Trees | Indices | Help |
|
---|
|
twisted.spread.jelly.Jellyable --+ | twisted.spread.flavors.Serializable --+ | twisted.spread.flavors.Referenceable --+ | twisted.application.service.Service --+ | | | twisted.application.service.MultiService --+ | 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.
Instance Methods | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
twisted.internet.defer.Deferred
|
|
||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
Inherited from Inherited from Inherited from Inherited from Inherited from |
Instance Variables | |
list of buildbot.process.base.BuildRequest |
buildable BuildRequests that are ready to build, but which are waiting for a buildslave to be available. |
list of buildbot.process.base.Build |
building Builds that are actively running |
list of buildbot.buildslave.BuildSlave objects |
slaves the slaves currently available for building |
Method Details |
|
Check for work to be done. This should be called any time I might be able to start a job:
If I have both an available slave and the database contains a BuildRequest that I can handle, I will claim the BuildRequest and start the build. When the build finishes, I will retire the BuildRequest. |
Returns the timestamp of the oldest build request for this builder. If there are no build requests, None is returned. |
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. |
This is invoked by the BuildSlave when the self.slavename bot registers their builder.
|
Start a build on the given slave.
|
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. |
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). |
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Fri Oct 29 10:00:41 2010 | http://epydoc.sourceforge.net |