| 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 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 cmd = [GSUTIL, 'cp', source, target] | 45 cmd = [GSUTIL, 'cp', source, target] |
| 46 (status, output) = ExecuteCommand(cmd) | 46 (status, output) = ExecuteCommand(cmd) |
| 47 if status != 0: | 47 if status != 0: |
| 48 return status | 48 return status |
| 49 print 'Uploaded: ' + output[0] | 49 print 'Uploaded: ' + output[0] |
| 50 | 50 |
| 51 cmd = [GSUTIL, 'setacl', 'public-read', target] | 51 cmd = [GSUTIL, 'setacl', 'public-read', target] |
| 52 (status, output) = ExecuteCommand(cmd) | 52 (status, output) = ExecuteCommand(cmd) |
| 53 return status | 53 return status |
| 54 | 54 |
| 55 def GetSVNRevision(): | |
| 56 p = subprocess.Popen(['svn', 'info'], stdout = subprocess.PIPE, | |
| 57 stderr = subprocess.STDOUT, shell=HAS_SHELL) | |
| 58 output, not_used = p.communicate() | |
| 59 for line in output.split('\n'): | |
| 60 if 'Revision' in line: | |
| 61 return (line.strip().split())[1] | |
| 62 return None | |
| 63 | |
| 64 | 55 |
| 65 def Usage(progname): | 56 def Usage(progname): |
| 66 sys.stderr.write('Usage: %s path_to_sdk\n' % progname) | 57 sys.stderr.write('Usage: %s path_to_sdk\n' % progname) |
| 67 | 58 |
| 68 | 59 |
| 69 def main(argv): | 60 def main(argv): |
| 70 #allow local editor builds to deploy to a different bucket | 61 #allow local editor builds to deploy to a different bucket |
| 71 if os.environ.has_key('DART_LOCAL_BUILD'): | 62 if os.environ.has_key('DART_LOCAL_BUILD'): |
| 72 gsdir = os.environ['DART_LOCAL_BUILD'] | 63 gsdir = os.environ['DART_LOCAL_BUILD'] |
| 73 else: | 64 else: |
| 74 gsdir = GS_DIR | 65 gsdir = GS_DIR |
| 75 | 66 |
| 76 if not os.path.exists(argv[1]): | 67 if not os.path.exists(argv[1]): |
| 77 sys.stderr.write('Path not found: %s\n' % argv[1]) | 68 sys.stderr.write('Path not found: %s\n' % argv[1]) |
| 78 Usage(argv[0]) | 69 Usage(argv[0]) |
| 79 return 1 | 70 return 1 |
| 80 if not os.path.exists(GSUTIL): | 71 if not os.path.exists(GSUTIL): |
| 81 #TODO: Determine where we are running, if we're running on a buildbot we | 72 #TODO: Determine where we are running, if we're running on a buildbot we |
| 82 #should fail with a message. | 73 #should fail with a message. |
| 83 #If we are not on a buildbot then fail silently. | 74 #If we are not on a buildbot then fail silently. |
| 84 exit(0) | 75 exit(0) |
| 85 revision = GetSVNRevision() | 76 revision = utils.GetSVNRevision() |
| 86 if revision is None: | 77 if revision is None: |
| 87 sys.stderr.write('Unable to find SVN revision.\n') | 78 sys.stderr.write('Unable to find SVN revision.\n') |
| 88 return 1 | 79 return 1 |
| 89 os.chdir(os.path.dirname(argv[1])) | 80 os.chdir(os.path.dirname(argv[1])) |
| 90 with open(os.path.join(os.path.basename(argv[1]), 'revision'), 'w') as f: | |
| 91 f.write(revision + '\n') | |
| 92 | 81 |
| 93 if (os.path.basename(os.path.dirname(argv[1])) == | 82 if (os.path.basename(os.path.dirname(argv[1])) == |
| 94 utils.GetBuildConf('release', 'ia32')): | 83 utils.GetBuildConf('release', 'ia32')): |
| 95 sdk_suffix = '' | 84 sdk_suffix = '' |
| 96 else: | 85 else: |
| 97 sdk_suffix = '-debug' | 86 sdk_suffix = '-debug' |
| 98 # TODO(dgrove) - deal with architectures that are not ia32. | 87 # TODO(dgrove) - deal with architectures that are not ia32. |
| 99 sdk_file = 'dart-%s-%s%s.zip' % (utils.GuessOS(), revision, sdk_suffix) | 88 sdk_file = 'dart-%s-%s%s.zip' % (utils.GuessOS(), revision, sdk_suffix) |
| 100 if (os.path.exists(SDK_LOCAL_ZIP)): | 89 if (os.path.exists(SDK_LOCAL_ZIP)): |
| 101 os.remove(SDK_LOCAL_ZIP) | 90 os.remove(SDK_LOCAL_ZIP) |
| 102 if platform.system() == 'Windows': | 91 if platform.system() == 'Windows': |
| 103 # Windows does not have zip. We use the 7 zip utility in third party. | 92 # Windows does not have zip. We use the 7 zip utility in third party. |
| 104 ExecuteCommand([os.path.join('..', 'third_party', '7zip', '7za'), 'a', | 93 ExecuteCommand([os.path.join('..', 'third_party', '7zip', '7za'), 'a', |
| 105 '-tzip', SDK_LOCAL_ZIP, os.path.basename(argv[1])]) | 94 '-tzip', SDK_LOCAL_ZIP, os.path.basename(argv[1])]) |
| 106 else: | 95 else: |
| 107 ExecuteCommand(['zip', '-yr', SDK_LOCAL_ZIP, os.path.basename(argv[1])]) | 96 ExecuteCommand(['zip', '-yr', SDK_LOCAL_ZIP, os.path.basename(argv[1])]) |
| 108 UploadArchive(SDK_LOCAL_ZIP, | 97 UploadArchive(SDK_LOCAL_ZIP, |
| 109 GS_SITE + '/'.join([gsdir, GS_SDK_DIR, sdk_file])) | 98 GS_SITE + '/'.join([gsdir, GS_SDK_DIR, sdk_file])) |
| 110 latest_name = 'dart-%s-latest%s.zip' % (utils.GuessOS(), sdk_suffix) | 99 latest_name = 'dart-%s-latest%s.zip' % (utils.GuessOS(), sdk_suffix) |
| 111 UploadArchive(SDK_LOCAL_ZIP, | 100 UploadArchive(SDK_LOCAL_ZIP, |
| 112 GS_SITE + '/'.join([gsdir, GS_SDK_DIR, latest_name])) | 101 GS_SITE + '/'.join([gsdir, GS_SDK_DIR, latest_name])) |
| 113 | 102 |
| 114 | 103 |
| 115 if __name__ == '__main__': | 104 if __name__ == '__main__': |
| 116 sys.exit(main(sys.argv)) | 105 sys.exit(main(sys.argv)) |
| OLD | NEW |