diff options
author | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2013-04-18 17:51:56 +0300 |
---|---|---|
committer | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2013-04-18 17:51:56 +0300 |
commit | db3eec651298bee66ad6e6afca63ba6b5477220e (patch) | |
tree | 00a498967f524a91404e582ed62e3466a2244ea9 | |
parent | 11a471e26a7eb2a32a95996e2653075d309b5da3 (diff) |
Add support to publish to staging.
-rwxr-xr-x | utils/new-publish/propagate.py | 19 | ||||
-rwxr-xr-x | utils/new-publish/publish | 6 |
2 files changed, 19 insertions, 6 deletions
diff --git a/utils/new-publish/propagate.py b/utils/new-publish/propagate.py index 37f5732..6a9b166 100755 --- a/utils/new-publish/propagate.py +++ b/utils/new-publish/propagate.py @@ -10,7 +10,8 @@ import paramiko import publib -REMOTE_HOST = "mombin.canonical.com" +REMOTE_HOST_PRODUCTION = "mombin.canonical.com" +REMOTE_HOST_STAGING = "staging.snapshots.linaro.org" PUBLISH_USER_NAME = "linaro-android-build-publish" TRIGGER_USER_NAME = "linaro-android-build-publish-trigger" PUBLISH_KEY_FILE = "/home/ubuntu/snapshots-sync2.new/linaro-android-build-publish" @@ -21,6 +22,7 @@ REMOTE_UPLOAD_DIR = "/uploads/android" if __name__ == "__main__": optparser = optparse.OptionParser(usage="%prog") + optparser.add_option("-s", "--staging", action="store_true", help="Publish to staging server") optparser.add_option("--identity-publish", metavar="KEY", default=PUBLISH_KEY_FILE, help="Publish SSH key file") optparser.add_option("--identity-trigger", metavar="KEY", default=TRIGGER_KEY_FILE, help="Trigger SSH key file") optparser.add_option("-n", "--dry-run", action="store_true", help="Don't actually publish files, log commands") @@ -31,6 +33,13 @@ if __name__ == "__main__": publib.validate_build_id(args[0]) + if options.staging: + remote_host = REMOTE_HOST_STAGING + opt_staging = "-s" + else: + remote_host = REMOTE_HOST_PRODUCTION + opt_staging = "" + if options.step in ("all", "1"): file_list = [] for root, dirs, files in os.walk(os.path.join(LOCAL_UPLOAD_DIR, args[0])): @@ -40,18 +49,18 @@ if __name__ == "__main__": dir_list = publib.make_dir_struct(file_list, REMOTE_UPLOAD_DIR, strip=strip) print "Dirs:", dir_list if not options.dry_run: - publib.create_dir_struct(dir_list, REMOTE_HOST, PUBLISH_USER_NAME, + publib.create_dir_struct(dir_list, remote_host, PUBLISH_USER_NAME, options.identity_publish) upload_script = publib.make_upload_script(file_list, REMOTE_UPLOAD_DIR, strip=strip) - publib.upload_files(upload_script, REMOTE_HOST, PUBLISH_USER_NAME, + publib.upload_files(upload_script, remote_host, PUBLISH_USER_NAME, options.identity_publish, options) if options.step in ("all", "2"): job, build = args[0].split("/") client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - client.connect(REMOTE_HOST, username=TRIGGER_USER_NAME, key_filename=TRIGGER_KEY_FILE) - stdin, stdout, stderr = client.exec_command("reshuffle-files -t android -j %s -n %s -m" % (job, build)) + client.connect(remote_host, username=TRIGGER_USER_NAME, key_filename=TRIGGER_KEY_FILE) + stdin, stdout, stderr = client.exec_command("reshuffle-files -t android -j %s -n %s -m %s" % (job, build, opt_staging)) stdin.close() print "=== stdout ===" print stdout.read() diff --git a/utils/new-publish/publish b/utils/new-publish/publish index 63bda60..13c7f93 100755 --- a/utils/new-publish/publish +++ b/utils/new-publish/publish @@ -19,6 +19,7 @@ if __name__ == "__main__": optparser.add_option("-t", "--type", help="Build type") optparser.add_option("-p", "--strip", metavar="NUM", type=int, default=0, help="Strip leading components from dest file names.") + optparser.add_option("-s", "--staging", action="store_true", help="Publish to staging") optparser.add_option("--identity-copy", metavar="KEY", default=COPY_KEY_FILE, help="SSH key file") optparser.add_option("--identity-trigger", metavar="KEY", default=TRIGGER_KEY_FILE, help="SSH key file") optparser.add_option("-n", "--dry-run", action="store_true", help="Don't actually publish files, log commands") @@ -48,7 +49,10 @@ if __name__ == "__main__": upload_script = publib.make_upload_script(file_list, UPLOAD_DIR, build_id, options.strip) publib.upload_files(upload_script, REMOTE_HOST, COPY_USER_NAME, options.identity_copy, options) - rc = os.system("ssh -i %s %s@%s propagate.py %s" % (options.identity_trigger, TRIGGER_USER_NAME, REMOTE_HOST, build_id)) + rc = os.system("ssh -i %s %s@%s propagate.py %s %s" % (options.identity_trigger, + TRIGGER_USER_NAME, REMOTE_HOST, + ["", "-s"][options.staging], + build_id)) if rc != 0: print "Publishing failed" sys.exit(1) |