From c974421f6278a81df369ee88d6f8a3de659e9e8f Mon Sep 17 00:00:00 2001 From: Will Holland Date: Wed, 30 Sep 2015 15:22:52 +0100 Subject: Add Pipeline to master The pipeline is a collection of columns defined from an external config repo. They will be created by orchestration/source/configure.py --- ciatlib/master.py | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/ciatlib/master.py b/ciatlib/master.py index 7997486..04c0edc 100644 --- a/ciatlib/master.py +++ b/ciatlib/master.py @@ -12,6 +12,49 @@ class GitSource: self.ref = ref self.sha = sha +class Step: + def __init__(self,name,trigger,properties,timeout=1200,get_definitions=False): + self.name = name + self.trigger = trigger + self.properties = properties + +Build = Step( + name = 'Build', + trigger = 'builder_trigger.sh', + properties = [ + ("ref","cu010-trove/br6/firehose-test-1"), + ("sha","HEAD"), + ("system",'genivi-demo-platform-x86_64-generic.morph')], + timeout = 7200, + get_definitions = True) +Deploy = Step( + name = 'Deploy', + trigger = 'deploy_trigger.sh', + 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) +Test = Step( + name = 'Test', + trigger = 'testing_trigger.sh', + 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')]) +Publish = Step( + name = 'Publish', + trigger = 'publish_trigger.sh', + 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')]) + class Column: def add_get_definitions(self,ref): @@ -66,3 +109,46 @@ class Column: self.add_get_definitions(get_definitions) self.cmd = self.format_cmd() self.factory.addStep(self.cmd) + +class Pipeline: + + def get_slaves(self,slave_type): + ''' this returns a list of slaves given a slave-type ''' + #TODO + pass + + def __init__(self, + name, + candidate_refs, + slave_type, + clusters, + steps=[Build]): + self.name = name + self.candidate_refs = candidate_refs + self.slavenames = get_slaves(slave_type) + self.clusters = clusters + self.steps = steps + self.categories = [] + self.columns = [] + + for step in steps: + column_name = "%s %s" % (self.name, step.name) + category = column_name + self.categories.append(category) + self.columns.append(Column( + name = build_column_name, + source_repo = BUILD_SLAVE_SCRIPTS, + category = category, + trigger = step.trigger, + slavenames = self.slavenames, + properties = step.properties, + timeout = step.timeout, + get_definitions = step.get_definitions)) + +def pipeline_from_dict(_dict): + ''' given a dict of a pipeline return an object ''' + name = _dict['name'] + candidate_refs = _dict['candidate_refs'] + slave_type = _dict['slave-type'] + clusters = _dict['clusters'] + return Pipeline(name,candidate_refs,slave_type,clusters) -- cgit v1.2.1