OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # | 2 # |
3 # Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 3 # Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
4 # for details. All rights reserved. Use of this source code is governed by a | 4 # for details. All rights reserved. Use of this source code is governed by a |
5 # BSD-style license that can be found in the LICENSE file. | 5 # BSD-style license that can be found in the LICENSE file. |
6 | 6 |
7 import glob | 7 import glob |
8 import gsutil | 8 import gsutil |
9 import imp | 9 import imp |
10 import optparse | 10 import optparse |
(...skipping 18 matching lines...) Expand all Loading... |
29 REVISION = None | 29 REVISION = None |
30 SYSTEM = None | 30 SYSTEM = None |
31 | 31 |
32 NO_UPLOAD = None | 32 NO_UPLOAD = None |
33 | 33 |
34 DART_DIR = os.path.abspath(os.path.join(__file__, '..', '..', '..')) | 34 DART_DIR = os.path.abspath(os.path.join(__file__, '..', '..', '..')) |
35 utils = imp.load_source('utils', os.path.join(DART_DIR, 'tools', 'utils.py')) | 35 utils = imp.load_source('utils', os.path.join(DART_DIR, 'tools', 'utils.py')) |
36 bot_utils = imp.load_source('bot_utils', | 36 bot_utils = imp.load_source('bot_utils', |
37 os.path.join(DART_DIR, 'tools', 'bots', 'bot_utils.py')) | 37 os.path.join(DART_DIR, 'tools', 'bots', 'bot_utils.py')) |
38 | 38 |
39 def DartArchiveFile(local_path, remote_path, create_md5sum=False): | 39 def DartArchiveFile(local_path, remote_path, checksum_files=False): |
40 # Copy it to the new unified gs://dart-archive bucket | 40 # Copy it to the new unified gs://dart-archive bucket |
41 gsutil = bot_utils.GSUtil() | 41 gsutil = bot_utils.GSUtil() |
42 gsutil.upload(local_path, remote_path, public=True) | 42 gsutil.upload(local_path, remote_path, public=True) |
43 if create_md5sum: | 43 if checksum_files: |
44 # 'local_path' may have a different filename than 'remote_path'. So we need | 44 # 'local_path' may have a different filename than 'remote_path'. So we need |
45 # to make sure the *.md5sum file contains the correct name. | 45 # to make sure the *.md5sum file contains the correct name. |
46 assert '/' in remote_path and not remote_path.endswith('/') | 46 assert '/' in remote_path and not remote_path.endswith('/') |
| 47 |
47 mangled_filename = remote_path[remote_path.rfind('/') + 1:] | 48 mangled_filename = remote_path[remote_path.rfind('/') + 1:] |
48 local_md5sum = bot_utils.CreateChecksumFile(local_path, mangled_filename) | 49 local_md5sum = bot_utils.CreateMD5ChecksumFile(local_path, |
| 50 mangled_filename) |
49 gsutil.upload(local_md5sum, remote_path + '.md5sum', public=True) | 51 gsutil.upload(local_md5sum, remote_path + '.md5sum', public=True) |
| 52 local_sha256 = bot_utils.CreateSha256ChecksumFile(local_path, |
| 53 mangled_filename) |
| 54 gsutil.upload(local_sha256, remote_path + '.sha256sum', public=True) |
50 | 55 |
51 def DartArchiveUploadEditorZipFile(zipfile): | 56 def DartArchiveUploadEditorZipFile(zipfile): |
52 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) | 57 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) |
53 gsutil = bot_utils.GSUtil() | 58 gsutil = bot_utils.GSUtil() |
54 | 59 |
55 basename = os.path.basename(zipfile) | 60 basename = os.path.basename(zipfile) |
56 system = None | 61 system = None |
57 arch = None | 62 arch = None |
58 if basename.startswith('darteditor-linux'): | 63 if basename.startswith('darteditor-linux'): |
59 system = 'linux' | 64 system = 'linux' |
60 elif basename.startswith('darteditor-mac'): | 65 elif basename.startswith('darteditor-mac'): |
61 system = 'macos' | 66 system = 'macos' |
62 elif basename.startswith('darteditor-win'): | 67 elif basename.startswith('darteditor-win'): |
63 system = 'windows' | 68 system = 'windows' |
64 | 69 |
65 if basename.endswith('-32.zip'): | 70 if basename.endswith('-32.zip'): |
66 arch = 'ia32' | 71 arch = 'ia32' |
67 elif basename.endswith('-64.zip'): | 72 elif basename.endswith('-64.zip'): |
68 arch = 'x64' | 73 arch = 'x64' |
69 | 74 |
70 assert system and arch | 75 assert system and arch |
71 | 76 |
72 for revision in [REVISION, 'latest']: | 77 for revision in [REVISION, 'latest']: |
73 DartArchiveFile(zipfile, namer.editor_zipfilepath(revision, system, arch), | 78 DartArchiveFile(zipfile, namer.editor_zipfilepath(revision, system, arch), |
74 create_md5sum=True) | 79 checksum_files=True) |
75 | 80 |
76 def DartArchiveUploadUpdateSite(local_path): | 81 def DartArchiveUploadUpdateSite(local_path): |
77 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) | 82 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) |
78 gsutil = bot_utils.GSUtil() | 83 gsutil = bot_utils.GSUtil() |
79 for revision in [REVISION, 'latest']: | 84 for revision in [REVISION, 'latest']: |
80 update_site_dir = namer.editor_eclipse_update_directory(revision) | 85 update_site_dir = namer.editor_eclipse_update_directory(revision) |
81 try: | 86 try: |
82 gsutil.remove(update_site_dir, recursive=True) | 87 gsutil.remove(update_site_dir, recursive=True) |
83 except: | 88 except: |
84 # Ignore this, in the general case there is nothing. | 89 # Ignore this, in the general case there is nothing. |
85 pass | 90 pass |
86 gsutil.upload(local_path, update_site_dir, recursive=True, public=True) | 91 gsutil.upload(local_path, update_site_dir, recursive=True, public=True) |
87 | 92 |
88 def DartArchiveUploadSDKs(system, sdk32_zip, sdk64_zip): | 93 def DartArchiveUploadSDKs(system, sdk32_zip, sdk64_zip): |
89 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) | 94 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) |
90 for revision in [REVISION, 'latest']: | 95 for revision in [REVISION, 'latest']: |
91 path32 = namer.sdk_zipfilepath(revision, system, 'ia32', 'release') | 96 path32 = namer.sdk_zipfilepath(revision, system, 'ia32', 'release') |
92 path64 = namer.sdk_zipfilepath(revision, system, 'x64', 'release') | 97 path64 = namer.sdk_zipfilepath(revision, system, 'x64', 'release') |
93 DartArchiveFile(sdk32_zip, path32, create_md5sum=True) | 98 DartArchiveFile(sdk32_zip, path32, checksum_files=True) |
94 DartArchiveFile(sdk64_zip, path64, create_md5sum=True) | 99 DartArchiveFile(sdk64_zip, path64, checksum_files=True) |
95 | 100 |
96 def DartArchiveUploadAPIDocs(api_zip): | 101 def DartArchiveUploadAPIDocs(api_zip): |
97 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) | 102 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) |
98 for revision in [REVISION, 'latest']: | 103 for revision in [REVISION, 'latest']: |
99 destination = (namer.apidocs_directory(revision) + '/' + | 104 destination = (namer.apidocs_directory(revision) + '/' + |
100 namer.apidocs_zipfilename()) | 105 namer.apidocs_zipfilename()) |
101 DartArchiveFile(api_zip, destination, create_md5sum=False) | 106 DartArchiveFile(api_zip, destination, checksum_files=False) |
102 | 107 |
103 def DartArchiveUploadAndroidZip(android_zip): | 108 def DartArchiveUploadAndroidZip(android_zip): |
104 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) | 109 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) |
105 for revision in [REVISION, 'latest']: | 110 for revision in [REVISION, 'latest']: |
106 destination = namer.editor_android_zipfilepath(revision) | 111 destination = namer.editor_android_zipfilepath(revision) |
107 DartArchiveFile(android_zip, destination, create_md5sum=False) | 112 DartArchiveFile(android_zip, destination, checksum_files=False) |
108 | 113 |
109 def DartArchiveUploadVersionFile(version_file): | 114 def DartArchiveUploadVersionFile(version_file): |
110 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) | 115 namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW) |
111 for revision in [REVISION, 'latest']: | 116 for revision in [REVISION, 'latest']: |
112 DartArchiveFile(version_file, namer.version_filepath(revision), | 117 DartArchiveFile(version_file, namer.version_filepath(revision), |
113 create_md5sum=False) | 118 checksum_files=False) |
114 | 119 |
115 def DartArchiveUploadInstaller( | 120 def DartArchiveUploadInstaller( |
116 arch, installer_file, extension, release_type=bot_utils.ReleaseType.RAW): | 121 arch, installer_file, extension, release_type=bot_utils.ReleaseType.RAW): |
117 namer = bot_utils.GCSNamer(CHANNEL, release_type) | 122 namer = bot_utils.GCSNamer(CHANNEL, release_type) |
118 gsu_path = namer.editor_installer_filepath( | 123 gsu_path = namer.editor_installer_filepath( |
119 REVISION, SYSTEM, arch, extension) | 124 REVISION, SYSTEM, arch, extension) |
120 DartArchiveFile(installer_file, gsu_path, create_md5sum=False) | 125 DartArchiveFile(installer_file, gsu_path, checksum_files=False) |
121 | 126 |
122 class AntWrapper(object): | 127 class AntWrapper(object): |
123 """A wrapper for ant build invocations""" | 128 """A wrapper for ant build invocations""" |
124 | 129 |
125 _antpath = None | 130 _antpath = None |
126 _bzippath = None | 131 _bzippath = None |
127 _propertyfile = None | 132 _propertyfile = None |
128 | 133 |
129 def __init__(self, propertyfile, antpath='/usr/bin', bzippath=None): | 134 def __init__(self, propertyfile, antpath='/usr/bin', bzippath=None): |
130 """Initialize the ant path. | 135 """Initialize the ant path. |
(...skipping 1155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1286 def FileDelete(f): | 1291 def FileDelete(f): |
1287 """delete the given file - do not re-throw any exceptions that occur""" | 1292 """delete the given file - do not re-throw any exceptions that occur""" |
1288 if os.path.exists(f): | 1293 if os.path.exists(f): |
1289 try: | 1294 try: |
1290 os.remove(f) | 1295 os.remove(f) |
1291 except OSError: | 1296 except OSError: |
1292 print 'error deleting %s' % f | 1297 print 'error deleting %s' % f |
1293 | 1298 |
1294 if __name__ == '__main__': | 1299 if __name__ == '__main__': |
1295 sys.exit(main()) | 1300 sys.exit(main()) |
OLD | NEW |