Created
November 20, 2014 17:09
-
-
Save benallard/77930537cd91bd85134a to your computer and use it in GitHub Desktop.
A buildbot utility class to create a bunch of Builders for a list of slaves.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MatrixBuilders(object): | |
""" Create a bunch of builders, one per slave, and the | |
corresponding schedulers """ | |
def __init__(self, baseName, factory, slaveNames): | |
""" Create a MatrixBuilder, with the factory for each slave """ | |
self._baseName = baseName | |
self._factory = factory | |
self._slaves = slaveNames | |
def builderName(self, slaveName): | |
""" Override me if you want, make sure generated names are | |
unique for each slave """ | |
return '_'.join([self._baseName, slaveName]) | |
def getBuilders(self, extra_args={}): | |
""" Use me like that:: | |
c['builders'].extend(myMatrix.getBuilders()) | |
""" | |
for slaveName in self._slaves: | |
yield util.BuilderConfig( | |
name=self.builderName(slaveName), | |
slavenames=[slaveName], | |
factory=self._factory, | |
**extra_args) | |
def getScheduler(self, klass, extra_args={}): | |
""" Use me like that:: | |
c['schedulers'].append(myMatrix.getScheduler( | |
schedulers.SingleBranchScheduler, | |
dict(treeStableTimer=0, | |
change_filter=..., | |
codebases={...}))) | |
""" | |
builderNames = [] | |
for slaveName in self._slaves: | |
builderNames.append(self.builderName(slaveName)) | |
return klass(name=self._baseName, | |
builderNames=builderNames, | |
**extra_args) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
L27:
**extra_args
L36-38:
builderNames = [ ... for ...]