summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Holland <william.holland@codethink.co.uk>2015-09-30 15:22:52 +0100
committerWill Holland <william.holland@codethink.co.uk>2015-09-30 15:22:52 +0100
commitc974421f6278a81df369ee88d6f8a3de659e9e8f (patch)
tree8ae3147eafd50a993642158c4e4d8e025f96e82e
parent1bde6e0d46172b23beaa0c1e1d54fa1355d60e9c (diff)
downloadciatlib-c974421f6278a81df369ee88d6f8a3de659e9e8f.tar.gz
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
-rw-r--r--ciatlib/master.py86
1 files changed, 86 insertions, 0 deletions
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)