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

Side by Side Diff: master/master_builders_cfg.py

Issue 648353002: Remove Skia's forked buildbot code (Closed) Base URL: https://skia.googlesource.com/buildbot.git@master
Patch Set: Address comment Created 6 years, 2 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
« no previous file with comments | « master/master_android_builders_cfg.py ('k') | master/master_compile_builders_cfg.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 # Sets up all the builders we want this buildbot master to run.
6
7
8 #pylint: disable=C0301
9
10
11 from skia_master_scripts.canary_factory import CanaryFactory as f_canary
12 from skia_master_scripts.chromeos_factory import ChromeOSFactory as f_cros
13 from skia_master_scripts.drt_canary_factory import DRTCanaryFactory as f_drt
14 from skia_master_scripts.factory import SkiaFactory as f_factory
15 from skia_master_scripts import utils
16 from skia_master_scripts.xsan_factory import XsanFactory as f_xsan
17 from skia_master_scripts.factory import TARGET_PLATFORM_LINUX as LINUX
18 from skia_master_scripts.factory import TARGET_PLATFORM_WIN32 as WIN32
19 from skia_master_scripts.factory import TARGET_PLATFORM_MAC as MAC
20
21 import builder_name_schema
22 import collections
23
24
25 # Directory where we want to record performance data
26 #
27 # TODO(epoger): consider changing to reuse existing config.Master.perf_base_url,
28 # config.Master.perf_report_url_suffix, etc.
29 perf_output_basedir_linux = '../../../../perfdata'
30 perf_output_basedir_mac = perf_output_basedir_linux
31 perf_output_basedir_windows = '..\\..\\..\\..\\perfdata'
32
33
34 # Maps a target platform to a perf_output_basedir.
35 PERF_OUTPUT_BASEDIR = {
36 LINUX: perf_output_basedir_linux,
37 MAC: perf_output_basedir_mac,
38 WIN32: perf_output_basedir_windows,
39 }
40
41
42 # Schedulers used by the build master.
43 S_PERCOMMIT = 'skia_percommit_scheduler'
44 S_NIGHTLY = 'skia_nightly_scheduler'
45 S_15MINS = 'skia_15_minute_scheduler'
46
47
48 defaults = {}
49
50
51 ARCH_TO_GYP_DEFINE = {
52 'x86': {'skia_arch_width': '32'},
53 'x86_64': {'skia_arch_width': '64'},
54 'Arm7': {'skia_arch_width': '32'},
55 'Arm64': {'skia_arch_width': '64'},
56 'Mips': {'skia_arch_width': '32'},
57 'Mips64': {'skia_arch_width': '64'},
58 'MipsDSP2': {'skia_arch_width': '32'},
59 'NaCl': None,
60 }
61
62
63 CHROMEOS_BOARD_NAME = {
64 'Alex': 'x86-alex',
65 'Link': 'link',
66 'Daisy': 'daisy',
67 }
68
69
70 # GYP_DEFINES for various types of builders.
71 GYP_WIN7 = repr({'skia_win_debuggers_path': 'c:/DbgHelp',
72 'qt_sdk': 'C:/Qt/4.8.5/'})
73 GYP_WIN8 = repr({'skia_win_debuggers_path': 'c:/DbgHelp',
74 'qt_sdk': 'C:/Qt/Qt5.1.0/5.1.0/msvc2012_64/'})
75 GYP_ANGLE = repr({'skia_win_debuggers_path': 'c:/DbgHelp',
76 'qt_sdk': 'C:/Qt/4.8.5/',
77 'skia_angle': '1'})
78 GYP_GDI = repr({'skia_win_debuggers_path': 'c:/DbgHelp',
79 'qt_sdk': 'C:/Qt/4.8.5/',
80 'skia_gdi': '1'})
81 GYP_EXC = repr({'skia_win_debuggers_path': 'c:/DbgHelp',
82 'qt_sdk': 'C:/Qt/4.8.5/',
83 'skia_win_exceptions': '1'})
84 GYP_IOS = repr({'skia_os': 'ios'})
85 NO_GPU = repr({'skia_gpu': '0'})
86 CLANG = repr({'skia_clang_build': '1'})
87 VALGRIND = repr({'skia_release_optimization_level': '1'})
88 PDFVIEWER = repr({'skia_run_pdfviewer_in_gm': '1'})
89 GYP_SHARED = repr({'component': 'shared_library'})
90 NO_GPU_SHARED = repr({'skia_gpu': '0', 'skia_shared_lib': '1'})
91
92
93 def get_gyp_defines(arch, gyp_defines_str=None):
94 """Build a dictionary of gyp defines.
95
96 Args:
97 arch: string; target architecture. Needs to appear in ARCH_TO_GYP_DEFINE.
98 gyp_defines_str: optional string; a string representation of a dictionary
99 of gyp defines.
100 Returns:
101 a dictionary mapping gyp variable names to their intended values.
102 """
103 try:
104 arch_width_define = ARCH_TO_GYP_DEFINE[arch]
105 except KeyError:
106 raise Exception('Unknown arch type: %s' % arch)
107 gyp_defines = eval(gyp_defines_str or 'None')
108 if arch_width_define:
109 if not gyp_defines:
110 gyp_defines = arch_width_define
111 else:
112 if 'skia_arch_width' in gyp_defines.keys():
113 raise ValueError('Cannot define skia_arch_width; it is derived from '
114 'the provided arch type.')
115 gyp_defines.update(arch_width_define)
116 return gyp_defines
117
118
119 # Types of builders to be used below.
120 class BaseBuilder:
121
122 def _create(self, helper, do_upload_render_results, do_upload_bench_results,
123 is_trybot=False):
124 """Internal method used by create() to set up a builder.
125
126 Args:
127 helper: instance of utils.SkiaHelper
128 do_upload_render_results: bool; whether the builder should upload its
129 render results.
130 do_upload_bench_results: bool; whether the builder should upload its
131 bench results.
132 is_trybot: bool; whether or not the builder is a trybot.
133 """
134 builder_name = builder_name_schema.BuilderNameFromObject(self, is_trybot)
135 if is_trybot:
136 # Override the scheduler for trybots.
137 scheduler_name = utils.TRY_SCHEDULERS_STR
138 else:
139 scheduler_name = self.scheduler
140
141 helper.Builder(builder_name, 'f_%s' % builder_name,
142 scheduler=scheduler_name)
143 helper.Factory('f_%s' % builder_name, self.factory_type(
144 builder_name=builder_name,
145 do_patch_step=is_trybot,
146 do_upload_render_results=do_upload_render_results,
147 do_upload_bench_results=do_upload_bench_results,
148 **self.factory_args
149 ).Build(**({'role': self.role} if hasattr(self, 'role') else {})))
150
151 def create(self, helper, do_upload_render_results, do_upload_bench_results,
152 do_trybots=True):
153 """Sets up a builder based on this configuration object.
154
155 Args:
156 helper: instance of utils.SkiaHelper
157 do_upload_render_results: bool; whether the builder should upload its
158 render results.
159 do_upload_bench_results: bool; whether the builder should upload its
160 bench results.
161 is_trybot: bool; whether or not to create an associated try builder.
162 """
163 self._create(helper, do_upload_render_results, do_upload_bench_results,
164 is_trybot=False)
165 if do_trybots:
166 self._create(helper, do_upload_render_results, do_upload_bench_results,
167 is_trybot=True)
168
169
170 BuilderConfig = collections.namedtuple(
171 'Builder',
172 ['role', 'os', 'model', 'gpu', 'arch', 'configuration', 'extra_config',
173 'gyp_defines', 'factory_type', 'target_platform', 'scheduler',
174 'extra_factory_args'])
175
176
177 CompileBuilderConfig = collections.namedtuple(
178 'CompileBuilder',
179 ['os', 'compiler', 'configuration', 'target_arch', 'extra_config',
180 'gyp_defines', 'warnings_as_errors', 'factory_type', 'target_platform',
181 'scheduler', 'extra_factory_args'])
182
183
184 HousekeepingBuilderConfig = collections.namedtuple(
185 'HousekeepingBuilder',
186 ['frequency', 'extra_config', 'factory_type', 'target_platform',
187 'scheduler', 'extra_factory_args'])
188
189
190 CanaryBuilderConfig = collections.namedtuple(
191 'CanaryBuilder',
192 ['project', 'os', 'compiler', 'target_arch', 'configuration', 'flavor',
193 'build_subdir', 'gyp_defines', 'factory_type', 'target_platform',
194 'scheduler', 'extra_factory_args'])
195
196
197 class Builder(BaseBuilder, BuilderConfig):
198
199 @property
200 def factory_args(self):
201 args = {
202 'configuration': self.configuration,
203 'gyp_defines': get_gyp_defines(self.arch, self.gyp_defines),
204 'target_platform': self.target_platform,
205 'perf_output_basedir':
206 (PERF_OUTPUT_BASEDIR[self.target_platform]
207 if self.role == 'Perf' else None),
208 }
209 args.update(self.extra_factory_args)
210 return args
211
212
213 class CompileBuilder(BaseBuilder, CompileBuilderConfig):
214
215 role = builder_name_schema.BUILDER_ROLE_BUILD
216
217 @property
218 def factory_args(self):
219 args = {
220 'configuration': self.configuration,
221 'gyp_defines': get_gyp_defines(self.target_arch, self.gyp_defines),
222 'target_platform': self.target_platform,
223 'compile_warnings_as_errors': self.warnings_as_errors,
224 }
225 args.update(self.extra_factory_args)
226 return args
227
228
229 class HousekeepingBuilder(BaseBuilder, HousekeepingBuilderConfig):
230
231 role = builder_name_schema.BUILDER_ROLE_HOUSEKEEPER
232
233 @property
234 def factory_args(self):
235 args = {'target_platform': self.target_platform}
236 args.update(self.extra_factory_args)
237 return args
238
239
240 class CanaryBuilder(BaseBuilder, CanaryBuilderConfig):
241
242 role = builder_name_schema.BUILDER_ROLE_CANARY
243
244 @property
245 def factory_args(self):
246 args = {
247 'gyp_defines': eval(self.gyp_defines or 'None'),
248 'target_platform': self.target_platform,
249 'build_subdir': self.build_subdir,
250 }
251 args.update(self.extra_factory_args)
252 return args
253
254
255 def setup_builders_from_config_list(builder_specs, helper,
256 do_upload_render_results,
257 do_upload_bench_results, builder_format):
258 """Takes a list of tuples describing builders and creates actual builders.
259
260 Args:
261 builder_specs: list of tuples following the one of the above formats.
262 helper: instance of utils.SkiaHelper
263 do_upload_render_results: bool; whether the builders should upload their
264 render results.
265 do_upload_bench_results: bool; whether the builders should upload their
266 bench results.
267 builder_format: one of the above formats.
268 """
269 for builder_tuple in sorted(builder_specs):
270 builder = builder_format(*builder_tuple)
271 builder.create(helper, do_upload_render_results, do_upload_bench_results)
272
273
274
275 def setup_test_and_perf_builders(helper, do_upload_render_results,
276 do_upload_bench_results):
277 """Set up the Test and Perf builders.
278
279 Args:
280 helper: instance of utils.SkiaHelper
281 do_upload_render_results: bool; whether the builders should upload their
282 render results.
283 do_upload_bench_results: bool; whether the builders should upload their
284 bench results.
285 """
286 #
287 # TEST AND PERF BUILDERS
288 #
289 # Role, OS, Model, GPU, Arch, Config, Extra Config, GYP_DEFS, Factory, Target, Scheduler, Extra Args
290 #
291 builder_specs = [
292 ('Test', 'Ubuntu12', 'ShuttleA', 'GTX660', 'x86', 'Debug', None, None, f_factory, LINUX, S_PERCOMMIT, {}),
293 ('Test', 'Ubuntu12', 'ShuttleA', 'GTX660', 'x86', 'Release', None, None, f_factory, LINUX, S_PERCOMMIT, {}),
294 ('Perf', 'Ubuntu12', 'ShuttleA', 'GTX660', 'x86', 'Release', None, None, f_factory, LINUX, S_PERCOMMIT, {}),
295 ('Test', 'Ubuntu12', 'ShuttleA', 'GTX660', 'x86_64', 'Debug', None, None, f_factory, LINUX, S_PERCOMMIT, {}),
296 ('Test', 'Ubuntu12', 'ShuttleA', 'GTX660', 'x86_64', 'Release', None, None, f_factory, LINUX, S_PERCOMMIT, {}),
297 ('Perf', 'Ubuntu12', 'ShuttleA', 'GTX660', 'x86_64', 'Release', None, None, f_factory, LINUX, S_PERCOMMIT, {}),
298 ('Test', 'Ubuntu12', 'ShuttleA', 'GTX550Ti', 'x86_64', 'Debug', 'ZeroGPUCache', None, f_factory, LINUX, S_PERCOMMIT, {}),
299 ('Test', 'Ubuntu12', 'ShuttleA', 'GTX550Ti', 'x86_64', 'Release', 'Valgrind', VALGRIND, f_factory, LINUX, S_PERCOMMIT, {'flavor': 'valgr ind'}),
300 ('Test', 'Ubuntu13.10', 'GCE', 'NoGPU', 'x86_64', 'Debug', None, NO_GPU, f_factory, LINUX, S_PERCOMMIT, {}),
301 ('Test', 'Ubuntu13.10', 'GCE', 'NoGPU', 'x86_64', 'Release', 'Shared', NO_GPU_SHARED, f_factory, LINUX, S_PERCOMMIT, {}),
302 ('Test', 'Ubuntu13.10', 'GCE', 'NoGPU', 'x86_64', 'Debug', 'ASAN', NO_GPU, f_xsan, LINUX, S_PERCOMMIT, {'sanitizer': 'ad dress'}),
303 ('Test', 'Ubuntu13.10', 'GCE', 'NoGPU', 'x86_64', 'Release', 'TSAN', NO_GPU, f_xsan, LINUX, S_PERCOMMIT, {'sanitizer': 'th read'}),
304 ('Test', 'Mac10.6', 'MacMini4.1', 'GeForce320M', 'x86_64', 'Debug', None, None, f_factory, MAC, S_PERCOMMIT, {}),
305 ('Test', 'Mac10.6', 'MacMini4.1', 'GeForce320M', 'x86_64', 'Release', None, None, f_factory, MAC, S_PERCOMMIT, {}),
306 ('Test', 'Mac10.7', 'MacMini4.1', 'GeForce320M', 'x86_64', 'Debug', None, None, f_factory, MAC, S_PERCOMMIT, {}),
307 ('Test', 'Mac10.7', 'MacMini4.1', 'GeForce320M', 'x86_64', 'Release', None, None, f_factory, MAC, S_PERCOMMIT, {}),
308 ('Perf', 'Mac10.7', 'MacMini4.1', 'GeForce320M', 'x86_64', 'Release', None, None, f_factory, MAC, S_PERCOMMIT, {}),
309 ('Test', 'Mac10.8', 'MacMini4.1', 'GeForce320M', 'x86_64', 'Debug', None, None, f_factory, MAC, S_PERCOMMIT, {}),
310 ('Test', 'Mac10.8', 'MacMini4.1', 'GeForce320M', 'x86_64', 'Release', None, PDFVIEWER, f_factory, MAC, S_PERCOMMIT, {}),
311 ('Perf', 'Mac10.8', 'MacMini4.1', 'GeForce320M', 'x86_64', 'Release', None, PDFVIEWER, f_factory, MAC, S_PERCOMMIT, {}),
312 ('Test', 'Win7', 'ShuttleA', 'HD2000', 'x86', 'Debug', None, GYP_WIN7, f_factory, WIN32, S_PERCOMMIT, {}),
313 ('Test', 'Win7', 'ShuttleA', 'HD2000', 'x86', 'Release', None, GYP_WIN7, f_factory, WIN32, S_PERCOMMIT, {}),
314 ('Perf', 'Win7', 'ShuttleA', 'HD2000', 'x86', 'Release', None, GYP_WIN7, f_factory, WIN32, S_PERCOMMIT, {}),
315 ('Test', 'Win7', 'ShuttleA', 'HD2000', 'x86_64', 'Debug', None, GYP_WIN7, f_factory, WIN32, S_PERCOMMIT, {}),
316 ('Test', 'Win7', 'ShuttleA', 'HD2000', 'x86_64', 'Release', None, GYP_WIN7, f_factory, WIN32, S_PERCOMMIT, {}),
317 ('Perf', 'Win7', 'ShuttleA', 'HD2000', 'x86_64', 'Release', None, GYP_WIN7, f_factory, WIN32, S_PERCOMMIT, {}),
318 ('Test', 'Win7', 'ShuttleA', 'HD2000', 'x86', 'Debug', 'ANGLE', GYP_ANGLE, f_factory, WIN32, S_PERCOMMIT, {}),
319 ('Test', 'Win7', 'ShuttleA', 'HD2000', 'x86', 'Release', 'ANGLE', GYP_ANGLE, f_factory, WIN32, S_PERCOMMIT, {}),
320 ('Perf', 'Win7', 'ShuttleA', 'HD2000', 'x86', 'Release', 'ANGLE', GYP_ANGLE, f_factory, WIN32, S_PERCOMMIT, {}),
321 ('Test', 'Win7', 'ShuttleA', 'HD2000', 'x86', 'Debug', 'GDI', GYP_GDI, f_factory, WIN32, S_PERCOMMIT, {}),
322 ('Test', 'Win7', 'ShuttleA', 'HD2000', 'x86', 'Release', 'GDI', GYP_GDI, f_factory, WIN32, S_PERCOMMIT, {}),
323 ('Perf', 'Win7', 'ShuttleA', 'HD2000', 'x86', 'Release', 'GDI', GYP_GDI, f_factory, WIN32, S_PERCOMMIT, {}),
324 ('Test', 'Win8', 'ShuttleA', 'GTX660', 'x86', 'Debug', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
325 ('Test', 'Win8', 'ShuttleA', 'GTX660', 'x86', 'Release', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
326 ('Perf', 'Win8', 'ShuttleA', 'GTX660', 'x86', 'Release', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
327 ('Test', 'Win8', 'ShuttleA', 'GTX660', 'x86_64', 'Debug', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
328 ('Test', 'Win8', 'ShuttleA', 'GTX660', 'x86_64', 'Release', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
329 ('Perf', 'Win8', 'ShuttleA', 'GTX660', 'x86_64', 'Release', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
330 ('Test', 'Win8', 'ShuttleA', 'HD7770', 'x86', 'Debug', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
331 ('Test', 'Win8', 'ShuttleA', 'HD7770', 'x86', 'Release', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
332 ('Perf', 'Win8', 'ShuttleA', 'HD7770', 'x86', 'Release', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
333 ('Test', 'Win8', 'ShuttleA', 'HD7770', 'x86_64', 'Debug', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
334 ('Test', 'Win8', 'ShuttleA', 'HD7770', 'x86_64', 'Release', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
335 ('Perf', 'Win8', 'ShuttleA', 'HD7770', 'x86_64', 'Release', None, GYP_WIN8, f_factory, WIN32, S_PERCOMMIT, {'build_targets': ['most']}),
336 ('Test', 'ChromeOS', 'Alex', 'GMA3150', 'x86', 'Debug', None, None, f_cros, LINUX, S_PERCOMMIT, {'board': 'x86-al ex'}),
337 ('Test', 'ChromeOS', 'Alex', 'GMA3150', 'x86', 'Release', None, None, f_cros, LINUX, S_PERCOMMIT, {'board': 'x86-al ex'}),
338 ('Perf', 'ChromeOS', 'Alex', 'GMA3150', 'x86', 'Release', None, None, f_cros, LINUX, S_PERCOMMIT, {'board': 'x86-al ex'}),
339 ('Test', 'ChromeOS', 'Link', 'HD4000', 'x86_64', 'Debug', None, None, f_cros, LINUX, S_PERCOMMIT, {'board': 'link'} ),
340 ('Test', 'ChromeOS', 'Link', 'HD4000', 'x86_64', 'Release', None, None, f_cros, LINUX, S_PERCOMMIT, {'board': 'link'} ),
341 ('Perf', 'ChromeOS', 'Link', 'HD4000', 'x86_64', 'Release', None, None, f_cros, LINUX, S_PERCOMMIT, {'board': 'link'} ),
342 ('Test', 'ChromeOS', 'Daisy', 'MaliT604', 'Arm7', 'Debug', None, None, f_cros, LINUX, S_PERCOMMIT, {'board': 'daisy' }),
343 ('Test', 'ChromeOS', 'Daisy', 'MaliT604', 'Arm7', 'Release', None, None, f_cros, LINUX, S_PERCOMMIT, {'board': 'daisy' }),
344 ('Perf', 'ChromeOS', 'Daisy', 'MaliT604', 'Arm7', 'Release', None, None, f_cros, LINUX, S_PERCOMMIT, {'board': 'daisy' }),
345 ]
346
347 setup_builders_from_config_list(builder_specs, helper,
348 do_upload_render_results,
349 do_upload_bench_results, Builder)
350
351
352 def setup_canaries(helper, do_upload_render_results, do_upload_bench_results):
353 """Set up the Canary builders.
354
355 Args:
356 helper: instance of utils.SkiaHelper
357 do_upload_render_results: bool; whether the builders should upload their
358 render results.
359 do_upload_bench_results: bool; whether the builders should upload their
360 bench results.
361 """
362 # Targets which we think are important for the Chrome canaries. Discussion:
363 # https://code.google.com/p/skia/issues/detail?id=2227
364 common_chrome_build_targets = [
365 'chrome', 'base_unittests', 'cacheinvalidation_unittests',
366 'cc_unittests', 'chromedriver_unittests', 'components_unittests',
367 'content_unittests', 'crypto_unittests', 'google_apis_unittests',
368 'gpu_unittests', 'ipc_tests', 'jingle_unittests', 'media_unittests',
369 'net_unittests', 'ppapi_unittests', 'printing_unittests',
370 'remoting_unittests', 'sql_unittests', 'sync_unit_tests', 'ui_unittests',
371 'unit_tests', 'content_browsertests', 'interactive_ui_tests',
372 'sync_integration_tests'
373 ]
374 # browser_tests fails on the windows canary. More details in
375 # https://code.google.com/p/skia/issues/detail?id=2863
376 linux_chrome_build_targets = common_chrome_build_targets + ['browser_tests']
377 win_chrome_build_targets = common_chrome_build_targets
378 #
379 # CANARY BUILDERS
380 #
381 # Project, OS, Compiler,Arch, Configuration, Flavor, Wor kdir,GYP_DEFINES,Factory, Target, Scheduler, Extra Args
382 #
383 canaries = [
384 ('Chrome', 'Ubuntu13.10', 'Ninja', 'x86_64', 'DRT', None, ' src', None, f_drt, LINUX, S_PERCOMMIT, {'path_to_skia': ['third_party ', 'skia']}),
385 ('Chrome', 'Ubuntu13.10', 'Ninja', 'x86_64', 'ToT', 'chrome', ' src', None, f_canary, LINUX, S_PERCOMMIT, {'flavor': 'chrome', 'build_ta rgets': linux_chrome_build_targets, 'path_to_skia': ['third_party', 'skia']}),
386 ('Chrome', 'Win', 'Ninja', 'x86', 'SharedLib_ToT', 'chrome', ' src', GYP_SHARED, f_canary, WIN32, S_PERCOMMIT, {'flavor': 'chrome', 'build_ta rgets': win_chrome_build_targets, 'path_to_skia': ['third_party', 'skia']}),
387 ]
388
389 setup_builders_from_config_list(canaries, helper, do_upload_render_results,
390 do_upload_bench_results, CanaryBuilder)
391
392
393 def setup_all_builders(helper, do_upload_render_results,
394 do_upload_bench_results):
395 """Set up all builders for this master.
396
397 Args:
398 helper: instance of utils.SkiaHelper
399 do_upload_render_results: bool; whether the builders should upload their
400 render results.
401 do_upload_bench_results: bool; whether the builders should upload their
402 bench results.
403 """
404 setup_test_and_perf_builders(
405 helper=helper,
406 do_upload_render_results=do_upload_render_results,
407 do_upload_bench_results=do_upload_bench_results)
408 setup_canaries(helper=helper,
409 do_upload_render_results=do_upload_render_results,
410 do_upload_bench_results=do_upload_bench_results)
411
412
413 def create_schedulers_and_builders(config, active_master, cfg,
414 builder_setup_func=setup_all_builders):
415 """Create the Schedulers and Builders.
416
417 Args:
418 config: buildbot config module.
419 active_master: class of the current build master.
420 cfg: dict; configuration dict for the build master.
421 builder_setup_func: function to call which sets up the builders for this
422 master. Defaults to setup_all_builders.
423 """
424 helper = utils.SkiaHelper(defaults)
425
426 # Default (per-commit) Scheduler for Skia.
427 helper.Scheduler(S_PERCOMMIT)
428
429 # Nightly Scheduler for Skia. The buildbot master follows UTC.
430 # Setting it to 3AM UTC (10 PM EST).
431 helper.PeriodicScheduler(S_NIGHTLY, minute=0, hour=3)
432
433 # Scheduler which fires every 15 minutes.
434 frequency_mins = 15
435 minutes = [i*frequency_mins for i in xrange(60/frequency_mins)]
436 helper.PeriodicScheduler(S_15MINS, minute=minutes)
437
438 # Schedulers for Skia trybots.
439 helper.TryJobSubversion(utils.TRY_SCHEDULER_SVN)
440 helper.TryJobRietveld(utils.TRY_SCHEDULER_RIETVELD)
441
442 # Call the passed-in builder setup function.
443 builder_setup_func(
444 helper=helper,
445 # TODO(epoger): Maybe pass the following "tweaks" as a single object,
446 # rather than requiring us to list them all out?
447 #
448 # To resolve https://code.google.com/p/skia/issues/detail?id=2432
449 # ('buildbots: don't run UpdateScripts if running on non-production
450 # master'), I wanted to add a third boolean flag (do_update_scripts),
451 # but I saw that I would need to add it in so many places I was
452 # discouraged. If the merged all the flags into a single object it
453 # would be easier to add more flags.
454 do_upload_render_results=active_master.do_upload_render_results,
455 do_upload_bench_results=active_master.do_upload_bench_results)
456
457 return helper.Update(cfg)
OLDNEW
« no previous file with comments | « master/master_android_builders_cfg.py ('k') | master/master_compile_builders_cfg.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698