summaryrefslogtreecommitdiff
path: root/builder_logic.py
diff options
context:
space:
mode:
authorWill Holland <william.holland@codethink.co.uk>2015-09-16 11:32:38 +0100
committerWill Holland <william.holland@codethink.co.uk>2015-09-16 12:07:56 +0100
commit2ac17e982075bba16a14cd5cdb154650a5ba9a58 (patch)
treefd81ffbbf68e2af41598e92549d79ea60a2cf0b5 /builder_logic.py
parent6aa25893eef26ed3dc4101374f5d8112ab406eb9 (diff)
downloadbuildslave-scripts-2ac17e982075bba16a14cd5cdb154650a5ba9a58.tar.gz
Pass SHAs of state when build starts forwards
The SHAs of definitions, buildslave-scripts and ciat-testing are passed along the pipeline for consistency
Diffstat (limited to 'builder_logic.py')
-rw-r--r--builder_logic.py38
1 files changed, 37 insertions, 1 deletions
diff --git a/builder_logic.py b/builder_logic.py
index e4cfc8e..d0355d5 100644
--- a/builder_logic.py
+++ b/builder_logic.py
@@ -6,6 +6,7 @@ BUILD_SCRIPT = 'build_a_system.sh'
DEPLOY_SCRIPT = 'deploy_a_system.sh'
DEFINITIONS_DIR='definitions'
REF = "cu010-trove/br6/firehose-test-1"
+TESTING_REPO = 'ssh://git@cu010-trove.codethink.com/cu010-trove/br6/ciat-tester'
whitelist = [
SYSTEM,
@@ -64,9 +65,17 @@ def build(system):
def trigger_deploy(system):
import requests
global url
+ global buildslave_scripts_sha
+ global definitions_sha
+ global testing_sha
url = '%sbuild_complete' % ORCHE_URL
if not system: return 0
- payload = {'system':system}
+ payload = {
+ 'system':system,
+ 'buildslave_scripts_sha':buildslave_scripts_sha,
+ 'definitions_sha':definitions_sha,
+ 'testing_sha':testing_sha,
+ }
log('triggering deploy')
r = requests.post(url,data=payload)
return not r.ok
@@ -76,9 +85,36 @@ def do_build_deploy(system):
if build_exit_val: _exit(build_exit_val)
return trigger_deploy(system)
+def get_buildslave_scripts_sha():
+ _cmd = ['git', 'log', REF, '--format=format:%H', '-1']
+ _proc = subprocess.Popen(_cmd, stdout=subprocess.PIPE)
+ _out, _err = _proc.communicate()
+ return _out.split()[0]
+
+def get_definitions_sha():
+ owd = os.getcwd()
+ os.chdir(DEFINITIONS_DIR)
+ _cmd = ['git', 'log', REF, '--format=format:%H', '-1']
+ _proc = subprocess.Popen(_cmd, stdout=subprocess.PIPE)
+ _out, _err = _proc.communicate()
+ os.chdir(owd)
+ return _out.split()[0]
+
+def get_testing_sha():
+ _cmd = ['git','ls-remote',TESTING_REPO]
+ _proc = subprocess.Popen(_cmd, stdout=subprocess.PIPE)
+ _out, _err = _proc.communicate()
+ return _out.split()[0]
+
if __name__ == '__main__':
import sys
force = ""
+ global buildslave_scripts_sha
+ global definitions_sha
+ global testing_sha
+ buildslave_scripts_sha = get_buildslave-scripts_sha()
+ definitions_sha = get_definitions_sha()
+ testing_sha = get_testing_sha()
try:
force = sys.argv[1]
except: