categories = [ 'repo_update', 'definitions_update_local-slave', 'definitions_update_arm-slave', 'build_complete', 'deploy_complete', 'publish'] buildslave_scripts = 'git://cu010-trove.codethink.com/cu010-trove/br6/buildslave-scripts.git' class Column: def __init__(self, name, category, trigger, slavenames, properties, timeout=1200, get_definitions=False): self.name = name self.category = category self.trigger = 'triggers/%s' % trigger self.slavenames = slavenames self.properties = properties self.timeout = timeout self.get_definitions=get_definitions from buildbot.process.factory import BuildFactory from buildbot.steps.shell import ShellCommand from buildbot.plugins import steps, util self.util_properties = [] for property in self.properties: self.util_properties.append( util.Property(property[0],default=property[1])) self.factory = BuildFactory() self.factory.addStep(steps.Git( repourl=buildslave_scripts, mode='incremental')) self.cmd = ['sh',self.trigger]+self.util_properties if self.get_definitions: sha = util.Property("sha","cu010-trove/br6/firehose-test-1") get_defns_cmd = ['sh','get_definitions.sh',sha] self.factory.addStep(ShellCommand(command=get_defns_cmd,timeout=self.timeout)) self.factory.addStep(ShellCommand(command=self.cmd,timeout=self.timeout)) columns = [ Column( name = "1. Integration", category = "repo_update", trigger = 'firehose_trigger.sh', slavenames=["local-slave"], properties = [('repo_name','no repo name given'), ('ref','no ref given')]), Column( name = "2. x86_64 Build", category = "definitions_update_local-slave", trigger = 'builders_trigger.sh', slavenames=["local-slave"], properties = [("ref","cu010-trove/br6/firehose-test-1"), ("sha","HEAD"), ("system",'genivi-demo-platform-x86_64-generic.morph')], timeout = 7200, get_definitions = True), Column( name = "3. ARM Build", category = "definitions_update_arm-slave", trigger = 'builders_trigger.sh', slavenames=["arm-slave"], properties = [("ref","cu010-trove/arm-base"), ("sha","HEAD"), ("system",'base-system-armv8l64.morph')], timeout = 7200, get_definitions = True), Column( name = "4. x86_64 Deploy", category = "build_complete", trigger = 'deploy_trigger.sh', slavenames=["local-slave"], properties = [ ('system','no system give'), ('buildnumber',0), ('buildslave_scripts_sha','no buildslave-scripts SHA given'), ('definitions_sha','no definitions SHA given'), ('testing_sha','no testing SHA given')], timeout = 1800, get_definitions = True), Column( name = "5. Test", category = "deploy_complete", trigger = 'testing_trigger.sh', slavenames=["local-slave"], properties = [ ('artefact','no artefact given'), ('testing_sha','no testing SHA given'), ('buildslave_scripts_sha','no buildslave-scripts SHA given'), ('definitions_sha','no definitions SHA given')]), Column( name = "6. Publish", category = "publish", trigger = 'publish_trigger.sh', slavenames=["local-slave"], properties = [ ('artefact','no artefact given'), ('testing_sha','no testing SHA given'), ('buildslave_scripts_sha','no buildslave-scripts SHA given'), ('definitions_sha','no definitions SHA given')])] web_user = "codething" web_user_password = "password" definitions_base_ref = "refs/heads/cu010-trove/br6/genivi-demo-platform" candidate_refs = {"refs/heads/cu010-trove/br6/firehose-test-1":"local-slave", "refs/heads/cu010-trove/arm-base":"arm-slave"} slaves = [ {'name':'local-slave','password':'pass'}, {'name':'arm-slave','password':'pass'}]