OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # | 2 # |
3 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 3 # Copyright (c) 2011, 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 # Gets or updates a DumpRenderTree (a nearly headless build of chrome). This is | 7 # Gets or updates a DumpRenderTree (a nearly headless build of chrome). This is |
8 # used for running browser tests of client applications. | 8 # used for running browser tests of client applications. |
9 | 9 |
10 import json | 10 import json |
(...skipping 16 matching lines...) Expand all Loading... |
27 os.chdir(dart_src) | 27 os.chdir(dart_src) |
28 | 28 |
29 GSUTIL_DIR = os.path.join('third_party', 'gsutil') | 29 GSUTIL_DIR = os.path.join('third_party', 'gsutil') |
30 GSUTIL = GSUTIL_DIR + '/gsutil' | 30 GSUTIL = GSUTIL_DIR + '/gsutil' |
31 | 31 |
32 DRT_DIR = os.path.join('client', 'tests', 'drt') | 32 DRT_DIR = os.path.join('client', 'tests', 'drt') |
33 DRT_VERSION = os.path.join(DRT_DIR, 'LAST_VERSION') | 33 DRT_VERSION = os.path.join(DRT_DIR, 'LAST_VERSION') |
34 DRT_LATEST_PATTERN = ( | 34 DRT_LATEST_PATTERN = ( |
35 'gs://dartium-archive/latest/drt-%(osname)s-inc-*.zip') | 35 'gs://dartium-archive/latest/drt-%(osname)s-inc-*.zip') |
36 DRT_PERMANENT_PATTERN = ('gs://dartium-archive/drt-%(osname)s-inc/drt-' | 36 DRT_PERMANENT_PATTERN = ('gs://dartium-archive/drt-%(osname)s-inc/drt-' |
37 '%(osname)s-inc-%(num)s.%(num)s.zip') | 37 '%(osname)s-inc-%(num1)s.%(num2)s.zip') |
38 | 38 |
39 DARTIUM_DIR = os.path.join('client', 'tests', 'dartium') | 39 DARTIUM_DIR = os.path.join('client', 'tests', 'dartium') |
40 DARTIUM_VERSION = os.path.join(DARTIUM_DIR, 'LAST_VERSION') | 40 DARTIUM_VERSION = os.path.join(DARTIUM_DIR, 'LAST_VERSION') |
41 DARTIUM_LATEST_PATTERN = ( | 41 DARTIUM_LATEST_PATTERN = ( |
42 'gs://dartium-archive/latest/dartium-%(osname)s-inc-*.zip') | 42 'gs://dartium-archive/latest/dartium-%(osname)s-inc-*.zip') |
43 DARTIUM_PERMANENT_PATTERN = ('gs://dartium-archive/dartium-%(osname)s-inc/' | 43 DARTIUM_PERMANENT_PATTERN = ('gs://dartium-archive/dartium-%(osname)s-inc/' |
44 'dartium-%(osname)s-inc-%(num)s.%(num)s.zip') | 44 'dartium-%(osname)s-inc-%(num1)s.%(num2)s.zip') |
45 | 45 |
46 CHROMEDRIVER_DIR = os.path.join('tools', 'testing', 'dartium-chromedriver') | 46 CHROMEDRIVER_DIR = os.path.join('tools', 'testing', 'dartium-chromedriver') |
47 CHROMEDRIVER_VERSION = os.path.join(CHROMEDRIVER_DIR, 'LAST_VERSION') | 47 CHROMEDRIVER_VERSION = os.path.join(CHROMEDRIVER_DIR, 'LAST_VERSION') |
48 CHROMEDRIVER_LATEST_PATTERN = ( | 48 CHROMEDRIVER_LATEST_PATTERN = ( |
49 'gs://dartium-archive/latest/chromedriver-%(osname)s-inc-*.zip') | 49 'gs://dartium-archive/latest/chromedriver-%(osname)s-inc-*.zip') |
50 CHROMEDRIVER_PERMANENT_PATTERN = ('gs://dartium-archive/chromedriver-%(osname)s' | 50 CHROMEDRIVER_PERMANENT_PATTERN = ('gs://dartium-archive/chromedriver-%(osname)s' |
51 '-inc/chromedriver-%(osname)s-inc-%(num)s.' | 51 '-inc/chromedriver-%(osname)s-inc-%(num1)s.' |
52 '%(num)s.zip') | 52 '%(num2)s.zip') |
53 | 53 |
54 SDK_DIR = os.path.join(utils.GetBuildRoot(utils.GuessOS(), 'release', 'ia32'), | 54 SDK_DIR = os.path.join(utils.GetBuildRoot(utils.GuessOS(), 'release', 'ia32'), |
55 'dart-sdk') | 55 'dart-sdk') |
56 SDK_VERSION = os.path.join(SDK_DIR, 'LAST_VERSION') | 56 SDK_VERSION = os.path.join(SDK_DIR, 'LAST_VERSION') |
57 SDK_LATEST_PATTERN = 'gs://dart-editor-archive-continuous/latest/VERSION' | 57 SDK_LATEST_PATTERN = 'gs://dart-editor-archive-continuous/latest/VERSION' |
58 # TODO(efortuna): Once the x64 VM also is optimized, select the version | 58 # TODO(efortuna): Once the x64 VM also is optimized, select the version |
59 # based on whether we are running on a 32-bit or 64-bit system. | 59 # based on whether we are running on a 32-bit or 64-bit system. |
60 SDK_PERMANENT = ('gs://dart-editor-archive-continuous/%(version_num)s/' + | 60 SDK_PERMANENT = ('gs://dart-editor-archive-continuous/%(version_num)s/' + |
61 'dartsdk-%(osname)s-32.zip') | 61 'dartsdk-%(osname)s-32.zip') |
62 | 62 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 permanent_prefix, revision_num=None): | 125 permanent_prefix, revision_num=None): |
126 """Get the latest binary that is stored in the dartium archive. | 126 """Get the latest binary that is stored in the dartium archive. |
127 | 127 |
128 Args: | 128 Args: |
129 name: the name of the desired download. | 129 name: the name of the desired download. |
130 directory: target directory (recreated) to install binary | 130 directory: target directory (recreated) to install binary |
131 version_file: name of file with the current version stamp | 131 version_file: name of file with the current version stamp |
132 latest_pattern: the google store url pattern pointing to the latest binary | 132 latest_pattern: the google store url pattern pointing to the latest binary |
133 permanent_prefix: stable google store folder used to download versions | 133 permanent_prefix: stable google store folder used to download versions |
134 revision_num: The desired revision number to retrieve. If revision_num is | 134 revision_num: The desired revision number to retrieve. If revision_num is |
135 None, we return the latest revision. | 135 None, we return the latest revision. If the revision number is specified |
| 136 but unavailable, find the nearest older revision and use that instead. |
136 """ | 137 """ |
137 osdict = {'Darwin':'mac', 'Linux':'lucid64', 'Windows':'win'} | 138 osdict = {'Darwin':'mac', 'Linux':'lucid64', 'Windows':'win'} |
138 | 139 |
139 def find_permanent_url(out, osname, revision_num): | 140 def find_permanent_url(out, osname, revision_num): |
140 output_lines = out.split() | 141 output_lines = out.split() |
141 latest = output_lines[-1] | 142 latest = output_lines[-1] |
142 if not revision_num: | 143 if not revision_num: |
143 revision_num = latest[latest.rindex('-') + 1 : latest.index('.')] | 144 revision_num = latest[latest.rindex('-') + 1 : latest.index('.')] |
144 latest = (permanent_prefix % { 'osname' : osname, 'num' : revision_num }) | 145 latest = (permanent_prefix[:permanent_prefix.rindex('/')] % { 'osname' : |
| 146 osname } + latest[latest.rindex('/'):]) |
| 147 else: |
| 148 latest = (permanent_prefix % { 'osname' : osname, 'num1' : revision_num, |
| 149 'num2' : revision_num }) |
| 150 foundURL = False |
| 151 while not foundURL: |
| 152 # Test to ensure this URL exists because the dartium-archive builds can |
| 153 # have unusual numbering (a range of CL numbers) sometimes. |
| 154 result, out = gsutil('ls', permanent_prefix % {'osname' : osname, |
| 155 'num1': '*', 'num2': revision_num }) |
| 156 if result == 0: |
| 157 # First try to find one with the the second number the same as the |
| 158 # requested number. |
| 159 latest = out.split()[0] |
| 160 foundURL = True |
| 161 else: |
| 162 # Now try to find one with a nearby CL num. |
| 163 revision_num = int(revision_num) - 1 |
145 return latest | 164 return latest |
146 | 165 |
147 get_from_gsutil(name, directory, version_file, latest_pattern, osdict, | 166 get_from_gsutil(name, directory, version_file, latest_pattern, osdict, |
148 find_permanent_url, revision_num) | 167 find_permanent_url, revision_num) |
149 | 168 |
150 def get_sdk_revision(name, directory, version_file, latest_pattern, | 169 def get_sdk_revision(name, directory, version_file, latest_pattern, |
151 permanent_prefix, revision_num): | 170 permanent_prefix, revision_num): |
152 """Get a revision of the SDK from the editor build archive. | 171 """Get a revision of the SDK from the editor build archive. |
153 | 172 |
154 Args: | 173 Args: |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 elif positional[0] == 'drt': | 309 elif positional[0] == 'drt': |
291 get_dartium_revision('DumpRenderTree', DRT_DIR, DRT_VERSION, | 310 get_dartium_revision('DumpRenderTree', DRT_DIR, DRT_VERSION, |
292 DRT_LATEST_PATTERN, DRT_PERMANENT_PATTERN, | 311 DRT_LATEST_PATTERN, DRT_PERMANENT_PATTERN, |
293 args.revision) | 312 args.revision) |
294 else: | 313 else: |
295 print ('Please specify the target you wish to download from Google Storage ' | 314 print ('Please specify the target you wish to download from Google Storage ' |
296 '("drt", "dartium", "chromedriver", or "sdk")') | 315 '("drt", "dartium", "chromedriver", or "sdk")') |
297 | 316 |
298 if __name__ == '__main__': | 317 if __name__ == '__main__': |
299 sys.exit(main()) | 318 sys.exit(main()) |
OLD | NEW |