Package buildbot :: Package steps :: Package source :: Module oldsource :: Class SlaveSource
[frames] | no frames]

Class SlaveSource

source code

                            object --+            
                                     |            
process.properties.PropertiesMixin --+            
                                     |            
           process.buildstep.BuildStep --+        
                                         |        
        process.buildstep.LoggingBuildStep --+    
                                             |    
                                   base.Source --+
                                                 |
                                                SlaveSource
Known Subclasses:

Instance Methods
 
__init__(self, mode='update', retry=None, **kwargs)
x.__init__(...) initializes x; see help(type(x)) for signature
source code
 
start(self) source code
 
commandComplete(self, cmd) source code

Inherited from base.Source: computeSourceRevision, describe, setDefaultWorkdir, setStepStatus, updateSourceProperty

Inherited from process.buildstep.LoggingBuildStep: addLogFile, buildCommandKwargs, checkDisconnect, createSummary, evaluateCommand, getText, getText2, interrupt, maybeGetText2, setStatus, setupLogfiles, startCommand

Inherited from process.buildstep.BuildStep: __provides__, acquireLocks, addCompleteLog, addFactoryArguments, addHTMLLog, addLog, addLogObserver, addURL, failed, finished, getLog, getSlaveName, releaseLocks, runCommand, setBuild, setBuildSlave, setProgress, setupProgress, slaveVersion, slaveVersionIsOlderThan, startStep

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Inherited from process.properties.PropertiesMixin: __providedBy__, getProperties, getProperty, hasProperty, has_key, render, setProperty

Static Methods

Inherited from process.buildstep.BuildStep: __new__

Class Variables

Inherited from base.Source: branch, description, descriptionDone, descriptionSuffix, flunkOnFailure, haltOnFailure, notReally, renderables

Inherited from process.buildstep.LoggingBuildStep: cmd, logfiles, parms, progressMetrics

Inherited from process.buildstep.BuildStep: __implemented__, alwaysRun, build, doStepIf, flunkOnWarnings, hideStepIf, locks, name, progress, set_runtime_properties, step_status, useProgress, warnOnFailure, warnOnWarnings

Properties

Inherited from object: __class__

Method Details

__init__(self, mode='update', retry=None, **kwargs)
(Constructor)

source code 

x.__init__(...) initializes x; see help(type(x)) for signature

Parameters:
  • mode (string) - the kind of VC operation that is desired:
    • 'update': specifies that the checkout/update should be performed directly into the workdir. Each build is performed in the same directory, allowing for incremental builds. This minimizes disk space, bandwidth, and CPU time. However, it may encounter problems if the build process does not handle dependencies properly (if you must sometimes do a 'clean build' to make sure everything gets compiled), or if source files are deleted but generated files can influence test behavior (e.g. python's .pyc files), or when source directories are deleted but generated files prevent CVS from removing them. When used with a patched checkout, from a previous buildbot try for instance, it will try to "revert" the changes first and will do a clobber if it is unable to get a clean checkout. The behavior is SCM-dependent.
    • 'copy': specifies that the source-controlled workspace should be maintained in a separate directory (called the 'copydir'), using checkout or update as necessary. For each build, a new workdir is created with a copy of the source tree (rm -rf workdir; cp -R -P -p copydir workdir). This doubles the disk space required, but keeps the bandwidth low (update instead of a full checkout). A full 'clean' build is performed each time. This avoids any generated-file build problems, but is still occasionally vulnerable to problems such as a CVS repository being manually rearranged (causing CVS errors on update) which are not an issue with a full checkout.
    • 'clobber': specifies that the working directory should be deleted each time, necessitating a full checkout for each build. This insures a clean build off a complete checkout, avoiding any of the problems described above, but is bandwidth intensive, as the whole source tree must be pulled down for each build.
    • 'export': is like 'clobber', except that e.g. the 'cvs export' command is used to create the working directory. This command removes all VC metadata files (the CVS/.svn/{arch} directories) from the tree, which is sometimes useful for creating source tarballs (to avoid including the metadata in the tar file). Not all VC systems support export.
  • retry (tuple of ints (delay, repeats) (or None)) - if provided, VC update failures are re-attempted up to REPEATS times, with DELAY seconds between each attempt. Some users have slaves with poor connectivity to their VC repository, and they say that up to 80% of their build failures are due to transient network failures that could be handled by simply retrying a couple times.
Overrides: object.__init__

start(self)

source code 
Overrides: process.buildstep.BuildStep.start

commandComplete(self, cmd)

source code 
Overrides: process.buildstep.LoggingBuildStep.commandComplete