OLD | NEW |
| (Empty) |
1 # -*- python -*- | |
2 # ex: set syntax=python: | |
3 | |
4 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | |
5 # Use of this source code is governed by a BSD-style license that can be | |
6 # found in the LICENSE file. | |
7 | |
8 # This is the buildmaster config file for the 'chromium' bot. It must | |
9 # be installed as 'master.cfg' in your buildmaster's base directory | |
10 # (although the filename can be changed with the --basedir option to | |
11 # 'mktap buildbot master'). | |
12 | |
13 # It has one job: define a dictionary named BuildmasterConfig. This | |
14 # dictionary has a variety of keys to control different aspects of the | |
15 # buildmaster. They are documented in docs/config.xhtml . | |
16 | |
17 from buildbot.scheduler import Triggerable | |
18 | |
19 # Reload all the python files under master and common | |
20 import master | |
21 reload(master) | |
22 import common | |
23 reload(common) | |
24 | |
25 # These modules are beside this configuration file. They should be moved to | |
26 # scripts/master. | |
27 from builders_pools import BuildersPools | |
28 from try_job_http import TryJobHTTP | |
29 from try_job_svn import TryJobSubversion | |
30 | |
31 # These modules come from scripts/master, which must be in the PYTHONPATH. | |
32 import chromium_step | |
33 import try_job_status_update | |
34 from master.factory import commands | |
35 from master.factory import gyp_factory | |
36 from master.factory import nacl_factory | |
37 from master.factory import nacl_sdk_factory | |
38 from master.factory import o3d_factory | |
39 import master_utils | |
40 import slaves_list | |
41 | |
42 # These modules come from scripts/common, which must be in the PYTHONPATH. | |
43 import chromium_config as config | |
44 import chromium_utils | |
45 | |
46 ActiveMaster = config.Master.NativeClientTryServer | |
47 | |
48 MAIL_NOTIFIER = True | |
49 UPDATE_CODEREVIEW = ActiveMaster.is_production_host | |
50 | |
51 # This is the dictionary that the buildmaster pays attention to. We also use | |
52 # a shorter alias to save typing. | |
53 c = BuildmasterConfig = {} | |
54 | |
55 | |
56 ####### CHANGESOURCES | |
57 | |
58 c['change_source'] = [ ] | |
59 | |
60 | |
61 ####### BUILDERS | |
62 | |
63 c['builders'] = [] | |
64 | |
65 # FACTORIES | |
66 | |
67 m_win32 = {} | |
68 m_win64 = {} | |
69 m_mac = {} | |
70 m_linux = {} | |
71 m_arm = {} | |
72 | |
73 m_win32['nacl'] = nacl_factory.NativeClientFactory( | |
74 'native_client', 'win32', use_supplement=True).NativeClientFactory | |
75 m_win64['nacl'] = nacl_factory.NativeClientFactory( | |
76 'native_client', 'win64', use_supplement=True).NativeClientFactory | |
77 m_linux['nacl'] = nacl_factory.NativeClientFactory( | |
78 'native_client', 'linux2', use_supplement=True).NativeClientFactory | |
79 m_mac['nacl'] = nacl_factory.NativeClientFactory( | |
80 'native_client', 'darwin', use_supplement=True).NativeClientFactory | |
81 m_arm['nacl'] = nacl_factory.NativeClientFactory( | |
82 'native_client', 'arm', use_supplement=True).NativeClientFactory | |
83 | |
84 m_win32['naclsdk'] = nacl_sdk_factory.NativeClientSDKFactory( | |
85 'native_client', 'wincyg').NativeClientSDKFactory | |
86 m_linux['naclsdk'] = nacl_sdk_factory.NativeClientSDKFactory( | |
87 'native_client', 'linux2').NativeClientSDKFactory | |
88 m_mac['naclsdk'] = nacl_sdk_factory.NativeClientSDKFactory( | |
89 'native_client', 'darwin').NativeClientSDKFactory | |
90 | |
91 m_win32['gyp'] = gyp_factory.GYPFactory('trunk', | |
92 target_platform='win32').GYPFactory | |
93 m_mac['gyp'] = gyp_factory.GYPFactory('trunk', | |
94 target_platform='darwin').GYPFactory | |
95 m_linux['gyp'] = gyp_factory.GYPFactory('trunk', | |
96 target_platform='linux2').GYPFactory | |
97 | |
98 m_win32['o3d'] = o3d_factory.O3DFactory('trunk', | |
99 target_platform='win32').O3DFactory | |
100 m_mac['o3d'] = o3d_factory.O3DFactory('trunk', | |
101 target_platform='darwin').O3DFactory | |
102 m_linux['o3d'] = o3d_factory.O3DFactory('trunk', | |
103 target_platform='linux2').O3DFactory | |
104 | |
105 | |
106 def CreateBot(platform, password=config.Master.GetBotPassword(), | |
107 builder_name=None, target=None, project=None, | |
108 tests=None, options=None, mode=None, timeout=1200, | |
109 slave_names=None, factory_properties=None): | |
110 """Generates and register a builder along with its slave(s). | |
111 | |
112 Implicitly register slave_name or slave_names if they weren't registered yet. | |
113 If none of slave_name or slave_names is supplied, a slave name will be | |
114 constructed from the builder name.""" | |
115 if platform not in ('win32', 'win64', 'linux', 'mac', 'arm'): | |
116 raise Exception(platform + ' is not an known os type') | |
117 run_crash_handler = False | |
118 # Don't enable auto_reboot for people testing locally. | |
119 auto_reboot = ActiveMaster.is_production_host | |
120 if platform == 'win32': | |
121 factory = m_win32[project] | |
122 run_crash_handler = True | |
123 formats = ['msvs'] | |
124 elif platform == 'win64': | |
125 factory = m_win64[project] | |
126 run_crash_handler = True | |
127 formats = ['msvs'] | |
128 elif platform == 'linux': | |
129 factory = m_linux[project] | |
130 formats = ['scons', 'make'] | |
131 elif platform == 'mac': | |
132 factory = m_mac[project] | |
133 formats = ['xcode'] | |
134 elif platform == 'arm': | |
135 factory = m_arm[project] | |
136 formats = ['scons', 'linux'] | |
137 # Arm slaves have issue rebooting continuously. | |
138 auto_reboot = False | |
139 if project == 'nacl': | |
140 builder_factory = factory( | |
141 identifier=builder_name, slave_type='Trybot', target=target, | |
142 tests=tests, options=options, mode=mode, compile_timeout=timeout, | |
143 clobber=True, factory_properties=factory_properties) | |
144 elif project == 'naclsdk': | |
145 builder_factory = factory( | |
146 identifier=builder_name, slave_type='Trybot', target=target, | |
147 tests=tests, options=options, mode=mode, compile_timeout=timeout, | |
148 clobber=True, factory_properties=factory_properties, | |
149 official_release=False) | |
150 elif project == 'o3d': | |
151 builder_factory = factory( | |
152 identifier=builder_name, slave_type='Trybot', | |
153 tests=tests, options=options, mode=mode, compile_timeout=timeout, | |
154 clobber=True) | |
155 elif project == 'gyp': | |
156 builder_factory = factory(formats=formats) | |
157 else: | |
158 assert False | |
159 builder = { | |
160 'name': builder_name, | |
161 # TODO(maruel): remove | |
162 'builddir': builder_name.replace(' ', '-'), | |
163 'factory': builder_factory, | |
164 'auto_reboot': auto_reboot, | |
165 } | |
166 if slave_names: | |
167 builder['slavenames'] = slave_names | |
168 else: | |
169 builder['slavename'] = builder_name.replace(' ', '-') | |
170 c['builders'].append(builder) | |
171 | |
172 | |
173 # Try queues. | |
174 pools = BuildersPools('nacl') | |
175 number_slaves = 12 | |
176 slaves = slaves_list.SlavesList('slaves.cfg', 'NativeClientTryServer') | |
177 | |
178 | |
179 # A index to slave name mapper. | |
180 def GetSlaveName(builder_names, index): | |
181 s = [] | |
182 for b in builder_names: | |
183 s += slaves.GetSlavesName(builder=b) | |
184 # Fill up with dummy test slaves. | |
185 s.extend(['try-%s-%d' % (builder_names[0], i) | |
186 for i in range(1, number_slaves + 1 - len(s))]) | |
187 return s[index - 1] | |
188 | |
189 | |
190 projects = [ | |
191 { | |
192 'name': 'nacl', | |
193 'platforms': [ | |
194 { | |
195 'name': 'hardy32_m32_n32_dbg', | |
196 'core_platform': 'linux', | |
197 'builder_names': ['hardy32'], | |
198 'target': 'dbg-linux,nacl,doc', | |
199 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
200 'nacl_selenium'], | |
201 'options': nacl_factory.generic_m32_n32_options, | |
202 }, | |
203 { | |
204 'name': 'hardy32_m32_n32_opt', | |
205 'core_platform': 'linux', | |
206 'builder_names': ['hardy32'], | |
207 'target': 'opt-linux,nacl,doc', | |
208 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
209 'nacl_selenium'], | |
210 'options': nacl_factory.generic_m32_n32_options, | |
211 }, | |
212 { | |
213 'name': 'lucid32_m32_n32_dbg', | |
214 'core_platform': 'linux', | |
215 'builder_names': ['lucid32'], | |
216 'target': 'dbg-linux,nacl,doc', | |
217 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
218 'nacl_selenium'], | |
219 'options': nacl_factory.generic_m32_n32_options, | |
220 }, | |
221 { | |
222 'name': 'lucid32_m32_n32_opt', | |
223 'core_platform': 'linux', | |
224 'builder_names': ['lucid32'], | |
225 'target': 'opt-linux,nacl,doc', | |
226 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
227 'nacl_selenium'], | |
228 'options': nacl_factory.generic_m32_n32_options, | |
229 }, | |
230 { | |
231 'name': 'hardy64_m32_n32_dbg', | |
232 'core_platform': 'linux', | |
233 'builder_names': ['hardy64'], | |
234 'target': 'dbg-linux,nacl,doc', | |
235 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
236 'nacl_selenium'], | |
237 'options': nacl_factory.generic_m32_n32_options, | |
238 }, | |
239 { | |
240 'name': 'hardy64_m32_n32_opt', | |
241 'core_platform': 'linux', | |
242 'builder_names': ['hardy64'], | |
243 'target': 'opt-linux,nacl,doc', | |
244 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
245 'nacl_selenium'], | |
246 'options': nacl_factory.generic_m32_n32_options, | |
247 }, | |
248 { | |
249 'name': 'lucid64_m32_n32_dbg', | |
250 'core_platform': 'linux', | |
251 'builder_names': ['lucid64'], | |
252 'target': 'dbg-linux,nacl,doc', | |
253 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
254 'nacl_selenium'], | |
255 'options': nacl_factory.generic_m32_n32_options, | |
256 }, | |
257 { | |
258 'name': 'lucid64_m32_n32_opt', | |
259 'core_platform': 'linux', | |
260 'builder_names': ['lucid64'], | |
261 'target': 'opt-linux,nacl,doc', | |
262 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
263 'nacl_selenium'], | |
264 'options': nacl_factory.generic_m32_n32_options, | |
265 }, | |
266 { | |
267 'name': 'hardy64_m64_n64_dbg', | |
268 'core_platform': 'linux', | |
269 'builder_names': ['hardy64'], | |
270 'target': 'dbg-linux,nacl,doc', | |
271 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
272 'options': nacl_factory.hardy64_m64_n64_options, | |
273 }, | |
274 { | |
275 'name': 'hardy64_m64_n64_opt', | |
276 'core_platform': 'linux', | |
277 'builder_names': ['hardy64'], | |
278 'target': 'opt-linux,nacl,doc', | |
279 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
280 'options': nacl_factory.hardy64_m64_n64_options, | |
281 }, | |
282 { | |
283 'name': 'lucid64_m64_n64_dbg', | |
284 'core_platform': 'linux', | |
285 'builder_names': ['lucid64'], | |
286 'target': 'dbg-linux,nacl,doc', | |
287 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
288 'options': nacl_factory.generic_m64_n64_options, | |
289 }, | |
290 { | |
291 'name': 'lucid64_m64_n64_opt', | |
292 'core_platform': 'linux', | |
293 'builder_names': ['lucid64'], | |
294 'target': 'opt-linux,nacl,doc', | |
295 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
296 'options': nacl_factory.generic_m64_n64_options, | |
297 }, | |
298 { | |
299 'name': 'mac_dbg', | |
300 'core_platform': 'mac', | |
301 'builder_names': ['mac'], | |
302 'target': 'dbg-mac,nacl,doc', | |
303 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
304 'nacl_selenium'], | |
305 'options': nacl_factory.generic_m32_n32_options, | |
306 }, | |
307 { | |
308 'name': 'mac_opt', | |
309 'core_platform': 'mac', | |
310 'builder_names': ['mac'], | |
311 'target': 'opt-mac,nacl,doc', | |
312 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
313 'nacl_selenium'], | |
314 'options': nacl_factory.generic_m32_n32_options, | |
315 }, | |
316 { | |
317 'name': 'win32_dbg', | |
318 'core_platform': 'win32', | |
319 'builder_names': ['win32'], | |
320 'target': 'dbg-win,nacl,doc', | |
321 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
322 'options': nacl_factory.win_m32_n32_options, | |
323 'factory_properties': { 'vcvarsall': 'x86' }, | |
324 }, | |
325 { | |
326 'name': 'win32_opt', | |
327 'core_platform': 'win32', | |
328 'builder_names': ['win32'], | |
329 'target': 'opt-win,nacl,doc', | |
330 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
331 'options': nacl_factory.win_m32_n32_options, | |
332 'factory_properties': { 'vcvarsall': 'x86' }, | |
333 }, | |
334 { | |
335 'name': 'win64_dbg', | |
336 'core_platform': 'win64', | |
337 'builder_names': ['win64'], | |
338 'target': 'dbg-win,nacl,doc', | |
339 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
340 'options': nacl_factory.win_m64_n64_options, | |
341 'factory_properties': { 'vcvarsall': 'x64' }, | |
342 }, | |
343 { | |
344 'name': 'win64_opt', | |
345 'core_platform': 'win64', | |
346 'builder_names': ['win64'], | |
347 'target': 'opt-win,nacl,doc', | |
348 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests'], | |
349 'options': nacl_factory.win_m64_n64_options, | |
350 'factory_properties': { 'vcvarsall': 'x64' }, | |
351 }, | |
352 { | |
353 'name': 'arm_dbg', | |
354 'core_platform': 'arm', | |
355 # Use a single slave to prevent races on archive file. | |
356 'raw_slave_names': ['jega198'], | |
357 'target': 'dbg-linux,nacl,doc', | |
358 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
359 'nacl_trigger_arm_hw_dbg'], | |
360 'options': nacl_factory.linux_marm_narm_options['opt-arm-try'], | |
361 'factory_properties': { | |
362 'archive_build': True, | |
363 'archive_src': 'native_client/arm.tgz', | |
364 'archive_dst_base': 'between_builders', | |
365 'archive_dst': 'arm_try_dbg.tgz', | |
366 }, | |
367 }, | |
368 { | |
369 'name': 'arm_opt', | |
370 'core_platform': 'arm', | |
371 # Use a single slave to prevent races on archive file. | |
372 'raw_slave_names': ['jega199'], | |
373 'target': 'opt-linux,nacl,doc', | |
374 'tests': ['nacl_small_tests', 'nacl_medium_tests', 'nacl_large_tests', | |
375 'nacl_trigger_arm_hw_opt'], | |
376 'options': nacl_factory.linux_marm_narm_options['opt-arm-try'], | |
377 'factory_properties': { | |
378 'archive_build': True, | |
379 'archive_src': 'native_client/arm.tgz', | |
380 'archive_dst_base': 'between_builders', | |
381 'archive_dst': 'arm_try_opt.tgz', | |
382 }, | |
383 }, | |
384 ], | |
385 }, | |
386 { | |
387 'name': 'naclsdk', | |
388 'platforms': [ | |
389 { | |
390 'name': 'linux', | |
391 'core_platform': 'linux', | |
392 'builder_names': ['hardy32', 'hardy64', 'lucid32', 'lucid64'], | |
393 'target': 'nacl_client_sdk', | |
394 }, | |
395 { | |
396 'name': 'mac', | |
397 'core_platform': 'mac', | |
398 'builder_names': ['mac'], | |
399 'target': 'native_client_sdk', | |
400 }, | |
401 { | |
402 'name': 'windows', | |
403 'core_platform': 'win32', | |
404 'builder_names': ['win32'], | |
405 'target': 'native_client_sdk', | |
406 }, | |
407 ], | |
408 }, | |
409 { | |
410 'name': 'gyp', | |
411 'tests': [], | |
412 'platforms': [ | |
413 { | |
414 'name': 'linux', | |
415 'builder_names': ['hardy32', 'hardy64', 'lucid32', 'lucid64'], | |
416 }, | |
417 { | |
418 'name': 'mac', | |
419 }, | |
420 { | |
421 'name': 'win', | |
422 'core_platform': 'win32', | |
423 'builder_names': ['win32'], | |
424 }, | |
425 ], | |
426 }, | |
427 { | |
428 'name': 'o3d', | |
429 'tests': [], | |
430 'platforms': [ | |
431 { | |
432 'name': 'linux', | |
433 'mode': 'dbg-linux', | |
434 #'builder_names': ['hardy32', 'hardy64', 'lucid32', 'lucid64'], | |
435 'builder_names': ['hardy32', 'hardy64'], | |
436 }, | |
437 { | |
438 'name': 'mac', | |
439 'mode': 'dbg-mac', | |
440 }, | |
441 { | |
442 'name': 'd3d', | |
443 'core_platform': 'win32', | |
444 'builder_names': ['win32'], | |
445 'mode': 'dbg-d3d', | |
446 }, | |
447 ], | |
448 }, | |
449 ] | |
450 | |
451 for project in projects: | |
452 for platform in project['platforms']: | |
453 true_builder_names = platform.get('builder_names', [platform['name']]) | |
454 slave_names = [GetSlaveName(true_builder_names, x) | |
455 for x in range(1, number_slaves + 1)] | |
456 # This allows builders to pluck out particular slaves to use. | |
457 # It is used for the arm cross-compile builds to prevent race conditions | |
458 # by allowing only a single slave to write to a share archive URL. | |
459 slave_names = platform.get('raw_slave_names', slave_names) | |
460 name = project['name'] + '-' + platform['name'] | |
461 CreateBot(platform=platform.get('core_platform', platform['name']), | |
462 target=platform.get('target', project.get('target')), | |
463 tests=platform.get('tests', project.get('tests')), | |
464 mode=platform.get('mode'), | |
465 options=platform.get('options', project.get('options')), | |
466 factory_properties=platform.get( | |
467 'factory_properties', project.get('factory_properties')), | |
468 slave_names=slave_names, | |
469 project=project['name'], | |
470 builder_name=name) | |
471 pools[project['name']].append(name) | |
472 | |
473 | |
474 # Arm board tests | |
475 for mode in ('dbg', 'opt'): | |
476 name = 'nacl-arm_hw_%s' % mode | |
477 f = m_arm['nacl'](name, clobber=True, | |
478 target='%s-linux,nacl' % mode, | |
479 tests=['nacl_small_tests', | |
480 'nacl_medium_tests', | |
481 'nacl_large_tests', | |
482 'nacl_arm_hw', | |
483 'nacl_selenium'], | |
484 options=nacl_factory.linux_marm_narm_options['%s-arm' % mode], | |
485 slave_type='Tester', | |
486 factory_properties={ | |
487 'archive_build': False, | |
488 'archive_url': ('http://chrome-web/buildbot/nacl_archive/' | |
489 'between_builders/arm_try_%s.tgz' % mode) | |
490 }, | |
491 ) | |
492 # ARM slaves have issue rebooting so don't make them auto reboot. | |
493 c['builders'].append({ | |
494 'name': name, | |
495 'builddir': name, | |
496 'factory': f, | |
497 'slavenames': ['nacl-arm2', 'nacl-arm2c', 'nacl-arm2d', 'nacl-arm1d'], | |
498 }) | |
499 | |
500 | |
501 ####### BUILDSLAVES | |
502 | |
503 # The 'slaves' list defines the set of allowable buildslaves. List all the | |
504 # slaves registered to a builder. Remove dupes. | |
505 c['slaves'] = master_utils.AutoSetupSlaves(c['builders'], | |
506 config.Master.GetBotPassword()) | |
507 | |
508 | |
509 ####### SCHEDULERS | |
510 | |
511 # Configure the Schedulers; | |
512 # Main Tryscheduler for the try queue. groups is defined in the loop above. | |
513 c['schedulers'] = [] | |
514 | |
515 last_good_urls = { | |
516 'nacl': config.Master.NativeClient.last_good_url, | |
517 'naclsdk': None, | |
518 'o3d': config.Master.O3D.last_good_url, | |
519 'gyp': None, | |
520 } | |
521 code_review_sites = { | |
522 'nacl': config.Master.NativeClient.code_review_site, | |
523 'naclsdk': None, | |
524 'o3d': config.Master.O3D.code_review_site, | |
525 'gyp': config.Master.NativeClient.code_review_site, | |
526 } | |
527 c['schedulers'].append(TryJobHTTP( | |
528 name='try_job_http', | |
529 port=ActiveMaster.try_job_port, | |
530 last_good_urls=last_good_urls, | |
531 code_review_sites=code_review_sites, | |
532 pools=pools)) | |
533 | |
534 if ActiveMaster.svn_url: | |
535 c['schedulers'].append(TryJobSubversion( | |
536 name='try_job_svn', | |
537 svn_url=ActiveMaster.svn_url, | |
538 last_good_urls=last_good_urls, | |
539 code_review_sites=code_review_sites, | |
540 pools=pools)) | |
541 | |
542 for mode in ('dbg', 'opt'): | |
543 s = Triggerable( | |
544 name='arm_%s_hw_tests' % mode, | |
545 builderNames=['nacl-arm_hw_%s' % mode]) | |
546 c['schedulers'].append(s) | |
547 | |
548 | |
549 ####### STATUS TARGETS | |
550 | |
551 # Adds common status and tools to this master. | |
552 master_utils.AutoSetupMaster(c, ActiveMaster, False) | |
553 | |
554 # Add more. | |
555 | |
556 if MAIL_NOTIFIER: | |
557 # Add a dumb MailNotifier first so it will be used for BuildSlave with | |
558 # notify_on_missing set when they go missing. | |
559 from buildbot.status import mail | |
560 c['status'].append(mail.MailNotifier( | |
561 fromaddr=ActiveMaster.from_address, | |
562 builders=[], | |
563 relayhost=config.Master.smtp, | |
564 lookup=master_utils.FilterDomain())) | |
565 | |
566 # Try job result emails. | |
567 from try_mail_notifier import TryMailNotifier | |
568 c['status'].append(TryMailNotifier( | |
569 fromaddr=ActiveMaster.from_address, | |
570 subject="try of %(reason)s @ r%(revision)s %(timestamp)s", | |
571 mode='all', | |
572 relayhost=config.Master.smtp, | |
573 lookup=master_utils.FilterDomain())) | |
574 | |
575 if UPDATE_CODEREVIEW: | |
576 c['status'].append(try_job_status_update.TryJobStatusUpdate( | |
577 important_steps=['compile'])) | |
578 | |
579 | |
580 # Keep last try jobs, the default is too low. Must keep at least a few days | |
581 # worth of try jobs. | |
582 c['buildHorizon'] = 2000 | |
583 c['logHorizon'] = 2000 | |
584 # Must be at least 2x the number of slaves. | |
585 c['eventHorizon'] = 100 | |
586 # Must be at least 2x the number of on-going builds. | |
587 c['buildCacheSize'] = 100 | |
588 | |
589 | |
590 ####### PROJECT IDENTITY | |
591 | |
592 # The 'projectURL' string will be used to provide a link | |
593 # from buildbot HTML pages to your project's home page. | |
594 c['projectURL'] = 'http://go/ChromeTryServer' | |
595 | |
596 # Buildbot master url: | |
597 c['buildbotURL'] = 'http://buildbot.jail.google.com/buildbot/nacl-tryserver/' | |
OLD | NEW |