Index: mojo/tools/upload_binaries.py |
diff --git a/mojo/tools/upload_binaries.py b/mojo/tools/upload_binaries.py |
index 593b86fba9f7da5e345fcc8d0e61ecb84252cf65..4acf03e96dbdf278afbc18dc36f96d1a78567dd6 100755 |
--- a/mojo/tools/upload_binaries.py |
+++ b/mojo/tools/upload_binaries.py |
@@ -57,9 +57,12 @@ def upload(config, source, dest, dry_run): |
def upload_shell(config, dry_run, verbose): |
paths = Paths(config) |
zipfile_name = target(config) |
+ version = Version().version |
+ |
+ # Upload the binary. |
# TODO(blundell): Change this to be in the same structure as the LATEST files, |
# e.g., gs://mojo/shell/linux-x64/<version>/shell.zip. |
- dest = "gs://mojo/shell/" + Version().version + "/" + zipfile_name + ".zip" |
+ dest = "gs://mojo/shell/" + version + "/" + zipfile_name + ".zip" |
with tempfile.NamedTemporaryFile() as zip_file: |
with zipfile.ZipFile(zip_file, 'w') as z: |
shell_path = paths.target_mojo_shell_path |
@@ -78,19 +81,31 @@ def upload_shell(config, dry_run, verbose): |
z.writestr(zipinfo, shell_binary.read()) |
upload(config, zip_file.name, dest, dry_run) |
+ # Update the LATEST file to contain the version of the new binary. |
+ latest_file = "gs://mojo/shell/%s/LATEST" % target(config) |
+ write_file_to_gs(version, latest_file, config, dry_run) |
+ |
def upload_app(app_binary_path, config, dry_run): |
app_binary_name = os.path.basename(app_binary_path) |
+ app_name, _ = os.path.splitext(app_binary_name) |
version = Version().version |
- dest = ("gs://mojo/services/" + target(config) + "/" + version + "/" + |
- app_binary_name) |
- upload(config, app_binary_path, dest, dry_run) |
+ app_location_in_gs = ("mojo/services/" + target(config) + "/" + version + |
+ "/" + app_binary_name) |
+ gsutil_app_location = "gs://" + app_location_in_gs |
+ https_app_location = "https://storage.googleapis.com/" + app_location_in_gs |
+ |
+ # Upload the new binary. |
+ upload(config, app_binary_path, gsutil_app_location, dry_run) |
+ |
+ # Update the app's location file to point to the new binary. |
+ app_location_file = ("gs://mojo/services/" + target(config) + "/" + |
+ app_name + "_location") |
+ write_file_to_gs(https_app_location, app_location_file, config, dry_run) |
-def update_version(config, subdir, dry_run): |
+def write_file_to_gs(file_contents, dest, config, dry_run): |
with tempfile.NamedTemporaryFile() as temp_version_file: |
- version = Version().version |
- temp_version_file.write(version) |
+ temp_version_file.write(file_contents) |
temp_version_file.flush() |
- dest = "gs://mojo/%s/%s/LATEST" % (subdir, target(config)) |
upload(config, temp_version_file.name, dest, dry_run) |
def main(): |
@@ -111,13 +126,11 @@ def main(): |
target_os = Config.OS_ANDROID |
config = Config(target_os=target_os, is_debug=False) |
upload_shell(config, args.dry_run, args.verbose) |
- update_version(config, "shell", args.dry_run) |
apps_to_upload = find_apps_to_upload( |
gn.BuildDirectoryForConfig(config, Paths(config).src_root)) |
for app in apps_to_upload: |
upload_app(app, config, args.dry_run) |
- update_version(config, "services", args.dry_run) |
return 0 |