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

Class P4Sync

   BuildStep --+        
               |        
LoggingBuildStep --+    
                   |    
              Source --+
                       |
                      P4Sync


This is a partial solution for using a P4 source repository. You are required to manually set up each build slave with a useful P4 environment, which means setting various per-slave environment variables, and creating a P4 client specification which maps the right files into the slave's working directory. Once you have done that, this step merely performs a 'p4 sync' to update that workspace with the newest files.

Each slave needs the following environment: You should use 'p4 client' (?) to set up a client view spec which maps the desired files into $SLAVEBASE/$BUILDERBASE/source .
Method Summary
  __init__(self, p4port, p4user, p4passwd, p4client, **kwargs)
  computeSourceRevision(self, changes)
Each subclass must implement this method to do something more precise than -rHEAD every time.
  startVC(self, branch, revision, patch)
    Inherited from Source
  commandComplete(self, cmd)
This is a general-purpose hook method for subclasses.
  describe(self, done)
  start(self)
Begin the step.
    Inherited from LoggingBuildStep
  checkDisconnect(self, f)
  createSummary(self, log)
To create summary logs, do something like this: warnings = grep('^Warning:', log.getText()) self.addCompleteLog('warnings', warnings)
  evaluateCommand(self, cmd)
Decide whether the command was SUCCESS, WARNINGS, or FAILURE.
  getColor(self, cmd, results)
  getText(self, cmd, results)
  getText2(self, cmd, results)
We have decided to add a short note about ourselves to the overall build description, probably because something went wrong.
  interrupt(self, reason)
Halt the command, either because the user has decided to cancel the build ('reason' is a string), or because the slave has disconnected ('reason' is a ConnectionLost Failure).
  maybeGetText2(self, cmd, results)
  setStatus(self, cmd, results)
  setupLogfiles(self, cmd, logfiles)
Set up any additional logfiles= logs.
  startCommand(self, cmd, errorMessages)
    Inherited from BuildStep
  acquireLocks(self, res)
  addCompleteLog(self, name, text)
  addHTMLLog(self, name, html)
  addLog(self, name)
  addLogObserver(self, logname, observer)
  addURL(self, name, url)
Add a BuildStep URL to this step.
  failed(self, why)
  finished(self, results)
  getProperty(self, propname)
  getSlaveName(self)
  releaseLocks(self)
  runCommand(self, c)
  setProgress(self, metric, value)
BuildSteps can call self.setProgress() to announce progress along some metric.
  setProperty(self, propname, value)
  setStepStatus(self, step_status)
  setupProgress(self)
  slaveVersion(self, command, oldversion)
Return the version number of the given slave command.
  slaveVersionIsOlderThan(self, command, minversion)
  startStep(self, remote)
Begin the step.

Instance Variable Summary
    Inherited from BuildStep
buildbot.process.base.Build build: the parent Build which is executing this step
buildbot.status.progress.StepProgress progress: tracks ETA for the step
buildbot.status.builder.BuildStepStatus step_status: collects output status

Class Variable Summary
str name = 'p4sync'
    Inherited from Source
NoneType branch = None                                                                  
bool haltOnFailure = True
bool notReally = False
    Inherited from LoggingBuildStep
dict logfiles = {}
list parms = ['build', 'name', 'locks', 'haltOnFailure', 'flu...
tuple progressMetrics = ('output',)
    Inherited from BuildStep
bool flunkOnFailure = False
bool flunkOnWarnings = False
list locks = []
bool useProgress = True
bool warnOnFailure = False
bool warnOnWarnings = False

Method Details

computeSourceRevision(self, changes)

Each subclass must implement this method to do something more precise than -rHEAD every time. For version control systems that use repository-wide change numbers (SVN, P4), this can simply take the maximum such number from all the changes involved in this build. For systems that do not (CVS), it needs to create a timestamp based upon the latest Change, the Build's treeStableTimer, and an optional self.checkoutDelay value.
Overrides:
buildbot.steps.source.Source.computeSourceRevision (inherited documentation)

Class Variable Details

name

Type:
str
Value:
'p4sync'                                                               

Generated by Epydoc 2.1 on Sun Dec 10 22:04:45 2006 http://epydoc.sf.net