diff options
-rw-r--r-- | builder_logic.py | 38 | ||||
-rw-r--r-- | deploy_logic.py | 5 | ||||
-rw-r--r-- | triggers/deploy_trigger.sh | 9 | ||||
-rw-r--r-- | triggers/testing_trigger.sh | 2 |
4 files changed, 51 insertions, 3 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: diff --git a/deploy_logic.py b/deploy_logic.py index da69c7e..669c881 100644 --- a/deploy_logic.py +++ b/deploy_logic.py @@ -39,9 +39,10 @@ def deploy(cluster): def trigger_testing(artefact): import requests global url + global testing_sha url = '%sdeploy_complete' % ORCHE_URL log("triggering testing") - payload = {'artefact':artefact} + payload = {'artefact':artefact,'testing_sha':testing_sha} r = requests.post(url,data=payload) return not r.ok @@ -49,6 +50,8 @@ if __name__ == '__main__': import sys system = sys.argv[1] artefact = sys.argv[2] + global testing_sha + testing_sha = sys.argv[3] deploy_exit_val = deploy('clusters/tlsa.morph') if deploy_exit_val: _exit(deploy_exit_val) _exit(trigger_testing(artefact)) diff --git a/triggers/deploy_trigger.sh b/triggers/deploy_trigger.sh index b4d5ebd..20c72e8 100644 --- a/triggers/deploy_trigger.sh +++ b/triggers/deploy_trigger.sh @@ -1,7 +1,14 @@ set -ex SYSTEM=$1 BUILDNUMBER=$2 +BUILDSLAVE_SCRIPTS_SHA=$3 +DEFINITIONS_SHA=$4 +TESTING_SHA=$5 ARTEFACT="tlsa-ciat-test-x86_64_$BUILDNUMBER" echo "[$(date "+%F %R")] Deploy triggered with system $SYSTEM." >> ../../../../trigger_log sed "s/ARTEFACT/$ARTEFACT/" tlsa.morph > definitions/clusters/tlsa.morph -python deploy_logic.py $SYSTEM $ARTEFACT +git checkout $BUILDSLAVE_SCRIPTS_SHA +cd definitions +git checkout $DEFINITIONS_SHA +cd .. +python deploy_logic.py $SYSTEM $ARTEFACT $TESING_SHA diff --git a/triggers/testing_trigger.sh b/triggers/testing_trigger.sh index 7a86e73..72ca9ed 100644 --- a/triggers/testing_trigger.sh +++ b/triggers/testing_trigger.sh @@ -1,5 +1,6 @@ set -ex ARTEFACT=$1 +TESTING_SHA=$2 echo "[$(date "+%F %R")] Testing triggered. Artefact: $1" >> ../../../../trigger_log sudo chown $USER /archive/tlsa-ciat-test-x86_64.raw chmod 644 /archive/tlsa-ciat-test-x86_64.raw @@ -21,4 +22,5 @@ if [ -d ciat-tester ]; then fi git clone ssh://git@cu010-trove.codethink.com/cu010-trove/br6/ciat-tester cd ciat-tester +git checkout $TESTING_SHA ./test-runner.sh file:///archive/"$ARTEFACT".raw openstack tests/python.test tests/uname.test |