From 933d275fc5759d8872cdf32832782fd84dc7d210 Mon Sep 17 00:00:00 2001 From: Will Holland Date: Fri, 18 Sep 2015 08:38:02 +0100 Subject: Add Column abstraction to buildbot This will make it easier to tweak CIAT --- source/master.cfg | 97 +++++++------------------------------------------------ 1 file changed, 11 insertions(+), 86 deletions(-) (limited to 'source/master.cfg') diff --git a/source/master.cfg b/source/master.cfg index 162df0f..8f2cf99 100644 --- a/source/master.cfg +++ b/source/master.cfg @@ -39,7 +39,7 @@ c['change_source'].append(PBChangeSource( from buildbot.changes.filter import ChangeFilter import imp -orch_config = imp.load_source('module.name', '../../source/orch_config.py') +orch_config = imp.load_source('orch_config', '../../source/orch_config.py') categories = {} for _c in orch_config.categories: @@ -54,26 +54,12 @@ from buildbot.schedulers.basic import SingleBranchScheduler from buildbot.schedulers.forcesched import ForceScheduler from buildbot.changes import filter c['schedulers'] = [] -c['schedulers'].append(SingleBranchScheduler( - name = "trigger_firehose_sched", - change_filter = categories['repo_update'], +for column in orch_config.columns: + c['schedulers'].append(SingleBranchScheduler( + name = "%s_sched" % column.category, + change_filter = categories[column.category], treeStableTimer = None, - builderNames = ["1. Integration"])) -c['schedulers'].append(SingleBranchScheduler( - name = "trigger_builders_sched", - change_filter = categories['definitions_update'], - treeStableTimer = None, - builderNames = ["2. Build"])) -c['schedulers'].append(SingleBranchScheduler( - name = "trigger_deploy_sched", - change_filter = categories['build_complete'], - treeStableTimer = None, - builderNames = ["3. Deploy"])) -c['schedulers'].append(SingleBranchScheduler( - name = "trigger_testing_sched", - change_filter = categories['deploy_complete'], - treeStableTimer = None, - builderNames = ["4. Test"])) + builderNames = [column.name])) ####### BUILDERS @@ -81,75 +67,14 @@ c['schedulers'].append(SingleBranchScheduler( # what steps, and which slaves can execute them. Note that any particular build will # only take place on one slave. -from buildbot.process.factory import BuildFactory -from buildbot.steps.shell import ShellCommand -from buildbot.plugins import steps, util - -firehose_factory = BuildFactory() -firehose_factory.addStep(steps.Git( - repourl=orch_config.buildslave_scripts, - mode='incremental')) -repo_name = util.Property('repo_name',default="no repo name given") -firehose_cmd = ["sh","triggers/firehose_trigger.sh",repo_name] -firehose_factory.addStep(ShellCommand(command=firehose_cmd)) - -builders_factory = BuildFactory() -builders_factory.addStep(steps.Git( - repourl=orch_config.buildslave_scripts, - mode='incremental')) -builders_factory.addStep(ShellCommand(command=["sh","get_definitions.sh"])) -force = util.Property('force',default="") -builders_cmd = ["sh","triggers/builders_trigger.sh",force] -builders_factory.addStep(ShellCommand(command=builders_cmd, - timeout=orch_config.build_timeout)) - -deploy_factory = BuildFactory() -deploy_factory.addStep(steps.Git( - repourl=orch_config.buildslave_scripts, - mode='incremental')) -deploy_factory.addStep(ShellCommand(command=["sh","get_definitions.sh"])) -system = util.Property('system',default="no system given") -buildslave_scripts_sha = util.Property('buildslave_scripts_sha',default="no buildslave-scripts sha given") -definitions_sha = util.Property('definitions_sha',default="no definitions sha given") -testing_sha = util.Property('testing_sha',default="no testing sha given") -buildnumber = util.Property('buildnumber',default=0) -deploy_cmd = ["sh","triggers/deploy_trigger.sh", - system, - buildnumber, - buildslave_scripts_sha, - definitions_sha, - testing_sha] -deploy_factory.addStep(ShellCommand(command=deploy_cmd, - timeout=orch_config.deploy_timeout)) - -testing_factory = BuildFactory() -testing_factory.addStep(steps.Git( - repourl=orch_config.buildslave_scripts, - mode='incremental')) -artefact = util.Property('artefact',default=0) -testing_sha = util.Property('testing_sha',default="no_testing_sha_given") -testing_cmd = ["sh","triggers/testing_trigger.sh",artefact,testing_sha] -testing_factory.addStep(ShellCommand(command=testing_cmd)) - from buildbot.config import BuilderConfig c['builders'] = [] -c['builders'].append( - BuilderConfig(name="1. Integration", - slavenames=["example-slave"], - factory=firehose_factory)) -c['builders'].append( - BuilderConfig(name="2. Build", - slavenames=["example-slave"], - factory=builders_factory)) -c['builders'].append( - BuilderConfig(name="3. Deploy", - slavenames=["example-slave"], - factory=deploy_factory)) -c['builders'].append( - BuilderConfig(name="4. Test", - slavenames=["example-slave"], - factory=testing_factory)) +for column in orch_config.columns: + c['builders'].append( + BuilderConfig(name=column.name, + slavenames=["example-slave"], + factory=column.factory)) ####### STATUS TARGETS -- cgit v1.2.1