diff options
-rw-r--r-- | builder_logic.py | 20 | ||||
-rw-r--r-- | deploy_logic.py | 52 | ||||
-rw-r--r-- | triggers/deploy_trigger.sh | 2 |
3 files changed, 62 insertions, 12 deletions
diff --git a/builder_logic.py b/builder_logic.py index 0fac350..5c22676 100644 --- a/builder_logic.py +++ b/builder_logic.py @@ -58,27 +58,23 @@ def build(system): log('building %s' % system) return subprocess.call(['sh','%s' % BUILD_SCRIPT, '%s' % system]) -def deploy(cluster): - log('deploying %s' % cluster) - exit_val = subprocess.call(['sh','%s' % DEPLOY_SCRIPT, '%s' % cluster]) - log('deployment complete') - _exit(exit_val) - -def trigger_testing(build_id): +def trigger_deploy(system): import requests global url url = '%sbuild_complete' % ORCHE_URL - payload = {'artefact':build_id} + if not systems_list: return 0 + payload = {'system':system} r = requests.post(url,data=payload) return r.ok if __name__ == '__main__': _files_changed = files_changed() + systems_list = [] for f in _files_changed: if f in whitelist: - build_exit_val = build('systems/base-system-x86_64-generic.morph') + # TODO fix this being hardcoded + system = 'systems/base-system-x86_64-generic.morph' + build_exit_val = build(system) if build_exit_val: _exit(build_exit_val) - deploy_exit_val = deploy('clusters/tlsa.morph') - if deploy_exit_val: _exit(deploy_exit_val) - _exit(trigger_testing()) + _exit(trigger_deploy(system)) log('nothing whitelisted changed. No build started.') diff --git a/deploy_logic.py b/deploy_logic.py new file mode 100644 index 0000000..cc52a2b --- /dev/null +++ b/deploy_logic.py @@ -0,0 +1,52 @@ +import subprocess + +ORCHE_URL = 'http://127.0.0.1:8080/' +BUILD_SCRIPT = 'build_a_system.sh' +DEPLOY_SCRIPT = 'deploy_a_system.sh' +DEFINITIONS_DIR='definitions' +REF = "cu010-trove/br6/firehose-test-1" + +whitelist = [ + 'clusters/tlsa.morph', + 'systems/base-system-x86_64-generic.morph', + 'strata/build-essential.morph', + 'strata/core.morph', + 'strata/foundation.morph', + 'strata/bsp-x86_64-generic.morph', + ] + +LOGFILE = '/home/williamholland/orchestration/trigger_log' + +log_file = open(LOGFILE,'a') + +def log(msg): + ''' write message to log file with timestamp and script name ''' + import datetime + global log_file + dt = str(datetime.datetime.now()).split('.')[0] + log_file.write("[%s] Builder Trigger: %s\n" % (dt, msg)) + +def _exit(exit_val): + if exit_val: log('exiting unhappily') + exit(exit_val) + +def deploy(cluster): + log('deploying %s' % cluster) + exit_val = subprocess.call(['sh','%s' % DEPLOY_SCRIPT, '%s' % cluster]) + log('deployment complete') + _exit(exit_val) + +def trigger_testing(build_id): + import requests + global url + url = '%sdeploy_complete' % ORCHE_URL + payload = {'artefact':build_id} + r = requests.post(url,data=payload) + return r.ok + +if __name__ == '__main__': + import sys + system = sys.argv[1] + deploy_exit_val = deploy('clusters/tlsa.morph') + if deploy_exit_val: _exit(deploy_exit_val) + _exit(trigger_testing()) diff --git a/triggers/deploy_trigger.sh b/triggers/deploy_trigger.sh new file mode 100644 index 0000000..99004dc --- /dev/null +++ b/triggers/deploy_trigger.sh @@ -0,0 +1,2 @@ +echo "[$(date "+%F %R")] Deploy triggered." >> ../../../../trigger_log +python deploy_logic.py |