Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Side by Side Diff: build/android/buildbot/bb_run_bot.py

Issue 15817022: [Android] Refactor bb_host_steps to prepare for downstream usage. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « build/android/buildbot/bb_host_steps.py ('k') | build/android/buildbot/bb_utils.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2013 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 import collections 7 import collections
8 import copy 8 import copy
9 import json 9 import json
10 import os 10 import os
11 import pipes 11 import pipes
12 import re 12 import re
13 import subprocess 13 import subprocess
14 import sys 14 import sys
15 15
16 import bb_utils 16 import bb_utils
17 17
18 BotConfig = collections.namedtuple( 18 BotConfig = collections.namedtuple(
19 'BotConfig', ['bot_id', 'host_obj', 'test_obj']) 19 'BotConfig', ['bot_id', 'host_obj', 'test_obj'])
20 20
21 HostConfig = collections.namedtuple( 21 HostConfig = collections.namedtuple(
22 'HostConfig', ['host_step_args', 'extra_gyp_defines', 'target_arch']) 22 'HostConfig',
23 ['host_steps', 'extra_args', 'extra_gyp_defines', 'target_arch'])
23 24
24 TestConfig = collections.namedtuple('Tests', ['tests', 'extra_args']) 25 TestConfig = collections.namedtuple('Tests', ['tests', 'extra_args'])
25 26
26 27
27 def DictDiff(d1, d2): 28 def DictDiff(d1, d2):
28 diff = [] 29 diff = []
29 for key in sorted(set(d1.keys() + d2.keys())): 30 for key in sorted(set(d1.keys() + d2.keys())):
30 if key in d1 and d1[key] != d2.get(key): 31 if key in d1 and d1[key] != d2.get(key):
31 diff.append('- %s=%s' % (key, pipes.quote(d1[key]))) 32 diff.append('- %s=%s' % (key, pipes.quote(d1[key])))
32 if key in d2 and d2[key] != d1.get(key): 33 if key in d2 and d2[key] != d1.get(key):
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 """Get a formatted list of commands. 78 """Get a formatted list of commands.
78 79
79 Args: 80 Args:
80 options: Options object. 81 options: Options object.
81 bot_config: A BotConfig named tuple. 82 bot_config: A BotConfig named tuple.
82 Returns: 83 Returns:
83 list of Command objects. 84 list of Command objects.
84 """ 85 """
85 property_args = bb_utils.EncodeProperties(options) 86 property_args = bb_utils.EncodeProperties(options)
86 commands = [['build/android/buildbot/bb_host_steps.py'] + 87 commands = [['build/android/buildbot/bb_host_steps.py'] +
87 bot_config.host_obj.host_step_args + property_args] 88 ['--steps=%s' % ','.join(bot_config.host_obj.host_steps)] +
89 property_args + (bot_config.host_obj.extra_args or [])]
88 90
89 test_obj = bot_config.test_obj 91 test_obj = bot_config.test_obj
90 if test_obj: 92 if test_obj:
91 run_test_cmd = [ 93 run_test_cmd = [
92 'build/android/buildbot/bb_device_steps.py', '--reboot'] + property_args 94 'build/android/buildbot/bb_device_steps.py', '--reboot'] + property_args
93 for test in test_obj.tests: 95 for test in test_obj.tests:
94 run_test_cmd.extend(['-f', test]) 96 run_test_cmd.extend(['-f', test])
95 if test_obj.extra_args: 97 if test_obj.extra_args:
96 run_test_cmd.extend(test_obj.extra_args) 98 run_test_cmd.extend(test_obj.extra_args)
97 commands.append(run_test_cmd) 99 commands.append(run_test_cmd)
98 return commands 100 return commands
99 101
100 102
101 def GetBotStepMap(): 103 def GetBotStepMap():
102 compile_opt = ['--compile'] 104 compile_step = ['compile']
103 std_host_tests = ['--host-tests=check_webview_licenses,findbugs'] 105 std_host_tests = ['check_webview_licenses', 'findbugs']
104 std_build_opts = ['--compile', '--zip-build'] 106 std_build_steps = ['compile', 'zip_build']
105 std_test_opts = ['--extract-build'] 107 std_test_steps = ['extract_build']
106 std_tests = ['ui', 'unit'] 108 std_tests = ['ui', 'unit']
107 flakiness_server = '--upload-to-flakiness-server' 109 flakiness_server = '--upload-to-flakiness-server'
108 110
109 def B(bot_id, host_object, test_object=None): 111 def B(bot_id, host_object, test_object=None):
110 return BotConfig(bot_id, host_object, test_object) 112 return BotConfig(bot_id, host_object, test_object)
111 113
112 def T(tests, extra_args=None): 114 def T(tests, extra_args=None):
113 return TestConfig(tests, extra_args) 115 return TestConfig(tests, extra_args)
114 116
115 def H(host_step_args, extra_gyp=None, target_arch=None): 117 def H(host_steps, extra_args=None, extra_gyp=None, target_arch=None):
116 return HostConfig(host_step_args, extra_gyp, target_arch) 118 return HostConfig(host_steps, extra_args, extra_gyp, target_arch)
117 119
118 bot_configs = [ 120 bot_configs = [
119 # Main builders 121 # Main builders
120 B('main-builder-dbg', H(std_build_opts + std_host_tests)), 122 B('main-builder-dbg', H(std_build_steps + std_host_tests)),
121 B('main-builder-rel', H(std_build_opts)), 123 B('main-builder-rel', H(std_build_steps)),
122 B('main-clang-builder', 124 B('main-clang-builder',
123 H(compile_opt, 'clang=1 component=shared_library')), 125 H(compile_step, extra_gyp='clang=1 component=shared_library')),
124 B('main-clobber', H(compile_opt)), 126 B('main-clobber', H(compile_step)),
125 B('main-tests', H(std_test_opts), T(std_tests, [flakiness_server])), 127 B('main-tests', H(std_test_steps), T(std_tests, [flakiness_server])),
126 128
127 # Other waterfalls 129 # Other waterfalls
128 B('asan-builder-tests', H(compile_opt, 'asan=1'), 130 B('asan-builder-tests', H(compile_step, extra_gyp='asan=1'),
129 T(std_tests, ['--asan'])), 131 T(std_tests, ['--asan'])),
130 B('chromedriver-fyi-tests-dbg', H(std_test_opts), 132 B('chromedriver-fyi-tests-dbg', H(std_test_steps),
131 T(['chromedriver'], ['--install=ChromiumTestShell'])), 133 T(['chromedriver'], ['--install=ChromiumTestShell'])),
132 B('fyi-builder-dbg', 134 B('fyi-builder-dbg',
133 H(std_build_opts + std_host_tests + ['--experimental'])), 135 H(std_build_steps + std_host_tests, ['--experimental'])),
134 B('fyi-builder-rel', H(std_build_opts + ['--experimental'])), 136 B('fyi-builder-rel', H(std_build_steps, ['--experimental'])),
135 B('fyi-tests-dbg-ics-gn', H(compile_opt + [ '--experimental']), 137 B('fyi-tests-dbg-ics-gn', H(compile_step, [ '--experimental']),
136 T(std_tests, ['--experimental', flakiness_server])), 138 T(std_tests, ['--experimental', flakiness_server])),
137 B('fyi-tests', H(std_test_opts), 139 B('fyi-tests', H(std_test_steps),
138 T(std_tests, ['--experimental', flakiness_server])), 140 T(std_tests, ['--experimental', flakiness_server])),
139 B('fyi-component-builder-tests-dbg', 141 B('fyi-component-builder-tests-dbg',
140 H(compile_opt, 'component=shared_library'), 142 H(compile_step, extra_gyp='component=shared_library'),
141 T(std_tests, ['--experimental', flakiness_server])), 143 T(std_tests, ['--experimental', flakiness_server])),
142 B('perf-bisect-builder-tests-dbg', H(['--bisect-perf-regression'])), 144 B('perf-bisect-builder-tests-dbg', H(['bisect_perf_regression'])),
143 B('perf-tests-rel', H(std_test_opts), T([], ['--install=ContentShell'])), 145 B('perf-tests-rel', H(std_test_steps), T([], ['--install=ContentShell'])),
144 B('webkit-latest-webkit-tests', H(std_test_opts), 146 B('webkit-latest-webkit-tests', H(std_test_steps),
145 T(['webkit_layout', 'webkit'])), 147 T(['webkit_layout', 'webkit'])),
146 B('webkit-latest-contentshell', H(compile_opt), T(['webkit_layout'])), 148 B('webkit-latest-contentshell', H(compile_step), T(['webkit_layout'])),
147 B('builder-unit-tests', H(compile_opt), T(['unit'])), 149 B('builder-unit-tests', H(compile_step), T(['unit'])),
148 150
149 # Generic builder config (for substring match). 151 # Generic builder config (for substring match).
150 B('builder', H(std_build_opts)), 152 B('builder', H(std_build_steps)),
151 ] 153 ]
152 154
153 bot_map = dict((config.bot_id, config) for config in bot_configs) 155 bot_map = dict((config.bot_id, config) for config in bot_configs)
154 156
155 # These bots have identical configuration to ones defined earlier. 157 # These bots have identical configuration to ones defined earlier.
156 copy_map = [ 158 copy_map = [
157 ('lkgr-clobber', 'main-clobber'), 159 ('lkgr-clobber', 'main-clobber'),
158 ('try-builder-dbg', 'main-builder-dbg'), 160 ('try-builder-dbg', 'main-builder-dbg'),
159 ('try-builder-rel', 'main-builder-rel'), 161 ('try-builder-rel', 'main-builder-rel'),
160 ('try-clang-builder', 'main-clang-builder'), 162 ('try-clang-builder', 'main-clang-builder'),
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 sys.stdout.flush() 225 sys.stdout.flush()
224 if options.testing: 226 if options.testing:
225 env['BUILDBOT_TESTING'] = '1' 227 env['BUILDBOT_TESTING'] = '1'
226 return_code = subprocess.call(command, cwd=bb_utils.CHROME_SRC, env=env) 228 return_code = subprocess.call(command, cwd=bb_utils.CHROME_SRC, env=env)
227 if return_code != 0: 229 if return_code != 0:
228 return return_code 230 return return_code
229 231
230 232
231 if __name__ == '__main__': 233 if __name__ == '__main__':
232 sys.exit(main(sys.argv)) 234 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « build/android/buildbot/bb_host_steps.py ('k') | build/android/buildbot/bb_utils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698