summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builder_logic.py38
-rw-r--r--deploy_logic.py5
-rw-r--r--triggers/deploy_trigger.sh9
-rw-r--r--triggers/testing_trigger.sh2
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