From 2ac17e982075bba16a14cd5cdb154650a5ba9a58 Mon Sep 17 00:00:00 2001 From: Will Holland Date: Wed, 16 Sep 2015 11:32:38 +0100 Subject: Pass SHAs of state when build starts forwards The SHAs of definitions, buildslave-scripts and ciat-testing are passed along the pipeline for consistency --- builder_logic.py | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'builder_logic.py') 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: -- cgit v1.2.1