aboutsummaryrefslogtreecommitdiff
path: root/utils/new-publish
diff options
context:
space:
mode:
authorPaul Sokolovsky <paul.sokolovsky@linaro.org>2013-04-18 17:51:56 +0300
committerPaul Sokolovsky <paul.sokolovsky@linaro.org>2013-04-18 17:51:56 +0300
commitdb3eec651298bee66ad6e6afca63ba6b5477220e (patch)
tree00a498967f524a91404e582ed62e3466a2244ea9 /utils/new-publish
parent11a471e26a7eb2a32a95996e2653075d309b5da3 (diff)
Add support to publish to staging.
Diffstat (limited to 'utils/new-publish')
-rwxr-xr-xutils/new-publish/propagate.py19
-rwxr-xr-xutils/new-publish/publish6
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)