diff options
Diffstat (limited to 'master.py')
-rw-r--r-- | master.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/master.py b/master.py new file mode 100644 index 0000000..0c43c91 --- /dev/null +++ b/master.py @@ -0,0 +1,60 @@ +from buildbot.process.factory import BuildFactory +from buildbot.steps.shell import ShellCommand +from buildbot.plugins import util +from buildbot.plugins import steps +Property = util.Property +Git = steps.Git + +class Column: + + def add_get_definitions(self): + ''' add a step fetch definitions ''' + + default_ref = "cu010-trove/br6/firehose-test-1" + sha = Property("sha",default=default_ref) + get_defns_cmd = ['sh','get_definitions.sh',sha] + shell_cmd = ShellCommand(command=get_defns_cmd, + timeout=self.timeout) + self.factory.addStep(shell_cmd) + + def format_cmd(self): + ''' a buildbot shell command to pass the properties to trigger ''' + + util_properties = [] + for property in self.properties: + name = property[0] + default_str = property[1] + util_property = Property(name,default=default_str) + util_properties.append(util_property) + cmd = ['sh',self.trigger]+util_properties + return ShellCommand(command=cmd, + timeout=self.timeout) + + def __init__(self, + name, + source_repo, + category, + trigger, + slavenames, + properties, + timeout=1200, + get_definitions=False): + ''' A worker in CIAT Orchestration which appears as a column in the + buildbot waterfall ''' + + self.name = name + self.source_repo = source_repo + self.category = category + self.trigger = 'triggers/%s' % trigger + self.slavenames = slavenames + self.properties = properties + self.timeout = timeout + self.get_definitions = get_definitions + self.factory = BuildFactory() + self.factory.addStep(Git( + repourl=self.source_repo, + mode='incremental')) + if self.get_definitions: + self.add_get_definitions() + self.cmd = self.format_cmd() + self.factory.addStep(self.cmd) |