| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 | 2 |
| 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 | 6 |
| 7 # This zips the SDK and uploads it to Google Storage when run on a buildbot. | 7 # This zips the SDK and uploads it to Google Storage when run on a buildbot. |
| 8 # | 8 # |
| 9 # Usage: upload_sdk.py path_to_sdk | 9 # Usage: upload_sdk.py path_to_sdk |
| 10 | 10 |
| 11 import os | 11 import os |
| 12 import os.path | 12 import os.path |
| 13 import platform | 13 import platform |
| 14 import subprocess | 14 import subprocess |
| 15 import sys | 15 import sys |
| 16 import utils | 16 import utils |
| 17 | 17 |
| 18 | 18 |
| 19 GSUTIL = '/b/build/scripts/slave/gsutil' | 19 GSUTIL = '/b/build/scripts/slave/gsutil' |
| 20 HAS_SHELL = False | 20 HAS_SHELL = False |
| 21 if platform.system() == 'Windows': | 21 if platform.system() == 'Windows': |
| 22 GSUTIL = 'e:\\\\b\\build\\scripts\\slave\\gsutil' | 22 GSUTIL = 'e:\\\\b\\build\\scripts\\slave\\gsutil' |
| 23 HAS_SHELL = True | 23 HAS_SHELL = True |
| 24 GS_SITE = 'gs://' | 24 GS_SITE = 'gs://' |
| 25 GS_DIR = 'dart-dump-render-tree' | 25 GS_DIR = 'dart-dump-render-tree' |
| 26 GS_SDK_DIR = 'sdk' | 26 GS_SDK_DIR = 'sdk' |
| 27 SDK_LOCAL_ZIP = "dart-sdk.zip" | 27 SDK_LOCAL_ZIP = "dart-sdk.zip" |
| 28 SDK_LOCAL_TARGZ = "dart-sdk.tar.gz" |
| 28 | 29 |
| 29 def ExecuteCommand(cmd): | 30 def ExecuteCommand(cmd): |
| 30 """Execute a command in a subprocess. | 31 """Execute a command in a subprocess. |
| 31 """ | 32 """ |
| 32 print 'Executing: ' + ' '.join(cmd) | 33 print 'Executing: ' + ' '.join(cmd) |
| 33 pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, | 34 pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, |
| 34 shell=HAS_SHELL) | 35 shell=HAS_SHELL) |
| 35 output = pipe.communicate() | 36 output = pipe.communicate() |
| 36 if pipe.returncode != 0: | 37 if pipe.returncode != 0: |
| 37 print 'Execution failed: ' + str(output) | 38 print 'Execution failed: ' + str(output) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 61 #allow local editor builds to deploy to a different bucket | 62 #allow local editor builds to deploy to a different bucket |
| 62 if os.environ.has_key('DART_LOCAL_BUILD'): | 63 if os.environ.has_key('DART_LOCAL_BUILD'): |
| 63 gsdir = os.environ['DART_LOCAL_BUILD'] | 64 gsdir = os.environ['DART_LOCAL_BUILD'] |
| 64 else: | 65 else: |
| 65 gsdir = GS_DIR | 66 gsdir = GS_DIR |
| 66 | 67 |
| 67 if not os.path.exists(argv[1]): | 68 if not os.path.exists(argv[1]): |
| 68 sys.stderr.write('Path not found: %s\n' % argv[1]) | 69 sys.stderr.write('Path not found: %s\n' % argv[1]) |
| 69 Usage(argv[0]) | 70 Usage(argv[0]) |
| 70 return 1 | 71 return 1 |
| 72 |
| 71 if not os.path.exists(GSUTIL): | 73 if not os.path.exists(GSUTIL): |
| 72 #TODO: Determine where we are running, if we're running on a buildbot we | 74 #TODO: Determine where we are running, if we're running on a buildbot we |
| 73 #should fail with a message. | 75 #should fail with a message. |
| 74 #If we are not on a buildbot then fail silently. | 76 #If we are not on a buildbot then fail silently. |
| 75 utils.Touch(os.path.join(argv[1], 'upload.stamp')) | 77 utils.Touch(os.path.join(argv[1], 'upload.stamp')) |
| 76 exit(0) | 78 exit(0) |
| 79 |
| 77 revision = utils.GetSVNRevision() | 80 revision = utils.GetSVNRevision() |
| 78 if revision is None: | 81 if revision is None: |
| 79 sys.stderr.write('Unable to find SVN revision.\n') | 82 sys.stderr.write('Unable to find SVN revision.\n') |
| 80 return 1 | 83 return 1 |
| 84 |
| 81 os.chdir(os.path.dirname(argv[1])) | 85 os.chdir(os.path.dirname(argv[1])) |
| 82 | 86 |
| 83 if (os.path.basename(os.path.dirname(argv[1])) == | 87 if (os.path.basename(os.path.dirname(argv[1])) == |
| 84 utils.GetBuildConf('release', 'ia32')): | 88 utils.GetBuildConf('release', 'ia32')): |
| 85 sdk_suffix = '' | 89 sdk_suffix = '' |
| 86 else: | 90 else: |
| 87 sdk_suffix = '-debug' | 91 sdk_suffix = '-debug' |
| 88 # TODO(dgrove) - deal with architectures that are not ia32. | 92 # TODO(dgrove) - deal with architectures that are not ia32. |
| 89 sdk_file = 'dart-%s-%s%s.zip' % (utils.GuessOS(), revision, sdk_suffix) | 93 sdk_file_zip = 'dart-%s-%s%s.zip' % (utils.GuessOS(), revision, sdk_suffix) |
| 94 sdk_file_targz = 'dart-%s-%s%s.tar.gz' % (utils.GuessOS(), revision, |
| 95 sdk_suffix) |
| 90 if (os.path.exists(SDK_LOCAL_ZIP)): | 96 if (os.path.exists(SDK_LOCAL_ZIP)): |
| 91 os.remove(SDK_LOCAL_ZIP) | 97 os.remove(SDK_LOCAL_ZIP) |
| 98 if (os.path.exists(SDK_LOCAL_TARGZ)): |
| 99 os.remove(SDK_LOCAL_TARGZ) |
| 92 if platform.system() == 'Windows': | 100 if platform.system() == 'Windows': |
| 93 # Windows does not have zip. We use the 7 zip utility in third party. | 101 # Windows does not have zip. We use the 7 zip utility in third party. |
| 94 ExecuteCommand([os.path.join('..', 'third_party', '7zip', '7za'), 'a', | 102 ExecuteCommand([os.path.join('..', 'third_party', '7zip', '7za'), 'a', |
| 95 '-tzip', SDK_LOCAL_ZIP, os.path.basename(argv[1])]) | 103 '-tzip', SDK_LOCAL_ZIP, os.path.basename(argv[1])]) |
| 96 else: | 104 else: |
| 97 ExecuteCommand(['zip', '-yr', SDK_LOCAL_ZIP, os.path.basename(argv[1])]) | 105 ExecuteCommand(['zip', '-yr', SDK_LOCAL_ZIP, os.path.basename(argv[1])]) |
| 106 ExecuteCommand(['tar', 'czf', SDK_LOCAL_TARGZ, os.path.basename(argv[1])]) |
| 98 UploadArchive(SDK_LOCAL_ZIP, | 107 UploadArchive(SDK_LOCAL_ZIP, |
| 99 GS_SITE + '/'.join([gsdir, GS_SDK_DIR, sdk_file])) | 108 GS_SITE + '/'.join([gsdir, GS_SDK_DIR, sdk_file_zip])) |
| 100 latest_name = 'dart-%s-latest%s.zip' % (utils.GuessOS(), sdk_suffix) | 109 if (os.path.exists(SDK_LOCAL_TARGZ)): |
| 110 UploadArchive(SDK_LOCAL_TARGZ, |
| 111 GS_SITE + '/'.join([gsdir, GS_SDK_DIR, sdk_file_targz])) |
| 112 latest_name_zip = 'dart-%s-latest%s.zip' % (utils.GuessOS(), sdk_suffix) |
| 113 latest_name_targz = 'dart-%s-latest%s.tar.gz' % (utils.GuessOS(), sdk_suffix) |
| 101 UploadArchive(SDK_LOCAL_ZIP, | 114 UploadArchive(SDK_LOCAL_ZIP, |
| 102 GS_SITE + '/'.join([gsdir, GS_SDK_DIR, latest_name])) | 115 GS_SITE + '/'.join([gsdir, GS_SDK_DIR, latest_name_zip])) |
| 116 if (os.path.exists(SDK_LOCAL_TARGZ)): |
| 117 UploadArchive(SDK_LOCAL_TARGZ, |
| 118 GS_SITE + '/'.join([gsdir, GS_SDK_DIR, latest_name_targz])) |
| 103 utils.Touch('upload.stamp') | 119 utils.Touch('upload.stamp') |
| 104 | 120 |
| 105 | 121 |
| 106 if __name__ == '__main__': | 122 if __name__ == '__main__': |
| 107 sys.exit(main(sys.argv)) | 123 sys.exit(main(sys.argv)) |
| OLD | NEW |