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

Side by Side Diff: masters/master.tryserver.chromiumos/master.cfg

Issue 8305010: Add ChromiumOS Trybot support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build/
Patch Set: Created 9 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 | Annotate | Revision Log
OLDNEW
1 # -*- python -*- 1 # -*- python -*-
2 # ex: set syntax=python: 2 # ex: set syntax=python:
3
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 4 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 5 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 6 # found in the LICENSE file.
6 7
7 # READ THIS: 8 # This is the buildmaster config file for the 'chromeos' bot. It must
8 # See http://dev.chromium.org/developers/testing/chromium-build-infrastructure 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').
9 12
10 # These modules come from scripts, which must be in the PYTHONPATH. 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 # These modules come from scripts/master, which must be in the PYTHONPATH.
18 import master.cros_builder_mapping as cros_builder_mapping
19 # Perform reload so a 'make reconfig' picks up changes to cros_builder_mapping
20 reload(cros_builder_mapping)
21
11 from master import master_utils 22 from master import master_utils
12 from master import slaves_list 23 from master import slaves_list
13 from master import try_job_status_update 24 from master.cros_builders_pools import CrOSBuildersPools
14 from master.builders_pools import BuildersPools 25 from master.cros_try_job_git import CrOSTryJobGit
15 from master.factory import chromium_factory, chromeos_factory 26 from master.factory import chromeos_factory
16 from master.try_job_http import TryJobHTTP
17 from master.try_job_svn import TryJobSubversion
18 27
28 # These modules come from scripts/common, which must be in the PYTHONPATH.
19 import config 29 import config
20 30
21 ActiveMaster = config.Master.TryServer 31 ActiveMaster = config.Master.ChromiumOSTryServer
22 32
23 33 TREE_GATE_KEEPER = ActiveMaster.is_production_host
24 STATUS_PUSH = False
25 MAIL_NOTIFIER = True
26 UPDATE_CODEREVIEW = ActiveMaster.is_production_host
27 LISTEN_TO_SVN = ActiveMaster.svn_url and ActiveMaster.is_production_host
28 34
29 # This is the dictionary that the buildmaster pays attention to. We also use 35 # This is the dictionary that the buildmaster pays attention to. We also use
30 # a shorter alias to save typing. 36 # a shorter alias to save typing.
31 c = BuildmasterConfig = {} 37 c = BuildmasterConfig = {}
32 38
33
34 ####### CHANGESOURCES 39 ####### CHANGESOURCES
35 40
36 c['change_source'] = [ ] 41 c['change_source'] = []
37
38 42
39 ####### BUILDERS 43 ####### BUILDERS
40 44
41 ## FACTORIES 45 pools = CrOSBuildersPools(default_pool_name='ChromeOS',
46 » » builder_mapping=cros_builder_mapping.CONFIG_NAME_DICT)
M-A Ruel 2011/10/14 23:21:20 Use spaces
rcui1 2011/10/14 23:52:08 Done.
42 47
43 m_chromium_win = chromium_factory.ChromiumFactory( 48 BUILDERS = []
44 'src/build',
45 target_platform='win32')
46 49
47 m_chromium_win_webkit = chromium_factory.ChromiumFactory( 50 # ----------------------------------------------------------------------------
48 'src/build', 51 # BUILDER DEFINITIONS
49 target_platform='win32')
50 52
51 m_chromium_linux = chromium_factory.ChromiumFactory( 53 # The 'builders' list defines the Builders. Each one is configured with a
52 'src/build', 54 # dictionary, using the following keys:
53 target_platform='linux2') 55 # name (required): the name used to describe this bilder
56 # slavename (required): which slave to use, must appear in c['slaves']
57 # builddir (required): which subdirectory to run the builder in
58 # factory (required): a BuildFactory to define how the build is run
59 # category (optional): it is not used in the normal 'buildbot' meaning. It is
60 # used by gatekeeper to determine which steps it should
61 # look for to close the tree.
62 #
54 63
55 m_chromium_mac = chromium_factory.ChromiumFactory( 64 # Cros helper functions to build builders and factories.
56 'src/build',
57 target_platform='darwin')
58 65
59 # Chromium for ChromiumOS 66 def GetCBuildbotFactory(config):
60 m_chromium_chromiumos = chromium_factory.ChromiumFactory( 67 """Returns cros buildbot factories."""
61 'src/build', 68 return chromeos_factory.CbuildbotFactory(
62 target_platform='linux2') 69 params=config, trybot=True, crostools_repo=None).get_factory()
63 70
M-A Ruel 2011/10/14 23:21:20 Use 2 lines between file level symbols.
rcui1 2011/10/14 23:52:08 Done.
71 def AddBuilderDefinition(display_name):
72 """Adds a builder definition given by the args.
64 73
65 def CreateBuilder(platform, builder_name, target, 74 Args:
66 tests=None, options=None, mode=None, timeout=2400, 75 display_name: Name displayed on buildbot waterfall.
67 slavebuilddir=None, extra_gyp_defines=None, 76 """
68 gclient_env=None, sharding_supervisor=False, 77 def GetConfig():
69 unsharded_tests=None): 78 return cros_builder_mapping.NAME_CONFIG_DICT.get(display_name, display_name)
70 """Generates and register a builder along with its slave(s)."""
71 if platform not in ('win32', 'win64', 'linux', 'mac'):
72 raise Exception(platform + ' is not a known os type')
73 factory_properties = {
74 'non_default': [
75 'check_licenses',
76 'pyauto_functional_tests',
77 'googleurl_unittests'
78 ],
79 }
80 if sharding_supervisor:
81 factory_properties['sharding_supervisor'] = True
82 factory_properties['unsharded_tests'] = unsharded_tests or []
83 project = None
84 if platform in ('win32', 'win64'):
85 factory = m_chromium_win
86 if builder_name == 'win_aura':
87 project = 'all.sln;aura_builder'
88 else:
89 project = 'all.sln'
90 factory_properties['process_dumps'] = True
91 factory_properties['gclient_env'] = { 'GYP_DEFINES' : 'fastbuild=1' }
92 factory_properties['start_crash_handler'] = True
93 elif platform == 'linux':
94 factory = m_chromium_linux
95 factory_properties['gclient_env'] = { 'GYP_DEFINES' : 'fastbuild=1' }
96 elif platform == 'mac':
97 factory = m_chromium_mac
98 factory_properties['gclient_env'] = {
99 'GYP_DEFINES' : 'fastbuild=1 enable_svg=0' }
100 if gclient_env:
101 factory_properties['gclient_env'] = gclient_env
102 if extra_gyp_defines:
103 factory_properties['gclient_env']['GYP_DEFINES'] += ' ' + extra_gyp_defines
104 builder_factory = factory.ChromiumFactory(
105 slave_type='Trybot', target=target, tests=tests, options=options,
106 mode=mode, compile_timeout=timeout, project=project,
107 factory_properties=factory_properties)
108 builder_info = {
109 'name': builder_name,
110 'factory': builder_factory,
111 }
112 if slavebuilddir:
113 builder_info['slavebuilddir'] = slavebuilddir
114 return builder_info
115 79
80 BUILDERS.append({
81 'name': display_name,
82 'builddir': display_name.replace(' ', '-'),
83 'factory': GetCBuildbotFactory(GetConfig()),
84 'category': '1release full|info',
85 })
116 86
117 def CreateCrosBuilder(builder_name, target, slavebuilddir=None, 87 pools['ChromeOS'].append(display_name)
118 short_name=None):
119 """Generates and register a ChromeOS builder along with its slave(s)."""
120 88
121 if short_name: 89 # Pre Flight Queues
122 buildroot = '/b/cbuild.%s' % short_name 90 AddBuilderDefinition('x86 generic PFQ')
123 else: 91 AddBuilderDefinition('arm generic PFQ')
124 buildroot = '/b/cbuild' 92 AddBuilderDefinition('tegra2 PFQ')
125 93
126 # Sets up a factory with the steps to pull out a chromium source tree and 94 # Full Builders
127 # apply a patch from a try job 95 AddBuilderDefinition('x86 generic full')
128 trial_chrome_factory = m_chromium_chromiumos.ChromiumOSFactory( 96 AddBuilderDefinition('arm generic full')
129 target=None, 97 AddBuilderDefinition('tegra2 full')
130 slave_type='CrossTry', 98 AddBuilderDefinition('tegra2 seaboard full')
131 tests=[], 99 AddBuilderDefinition('x86 pineview full')
132 )
133 100
134 # Extends that factory with a Cbuildbot build steps to build and test 101 AddBuilderDefinition('chromiumos sdk',)
135 # CrOS using the chrome from the above chromium source tree
136 builder_factory = chromeos_factory.ChromeCbuildbotFactory(
137 params=target,
138 buildroot=buildroot,
139 crostools_repo=None,
140 dry_run=True,
141 chrome_root='.', # this is where ChromiumOSFactory has put "Chrome"
142 factory=trial_chrome_factory,
143 slave_manager=False,
144 ).get_factory()
145 102
146 builder_info = { 103 c['builders'] = BUILDERS
M-A Ruel 2011/10/14 23:21:20 You could set c['builders'] = [] around line 63 an
rcui1 2011/10/14 23:52:08 Done.
147 'name': builder_name,
148 'factory': builder_factory,
149 }
150 if slavebuilddir:
151 builder_info['slavebuilddir'] = slavebuilddir
152 return builder_info
153
154 # Try queues.
155 pools = BuildersPools('chrome')
156
157
158 # Tests that are not single-machine shard-safe on Linux
159 linux_unsharded = [
160 'gfx_unittests',
161 'interactive_ui_tests',
162 'net_unittests',
163 'sql_unittests',
164 'ui_tests',
165 'unit_tests',
166 # dbus_unittests is not sharded because it takes less than 1 second to run.
167 'dbus_unittests']
168
169 # Linux builder
170 linux_tests = [
171 'check_deps',
172 'check_licenses',
173 'base',
174 'net',
175 'googleurl',
176 'unit',
177 'ui',
178 'browser_tests',
179 'test_shell',
180 'webkit_unit',
181 'media',
182 'printing',
183 'remoting',
184 'nacl_integration',
185 'gpu',
186 'interactive_ui',
187 'safe_browsing',
188 'crypto',
189 'cacheinvalidation',
190 'jingle',
191 'dbus',]
192 b_linux = CreateBuilder(platform='linux',
193 target='Debug',
194 options=['--compiler=goma'],
195 tests=linux_tests,
196 builder_name='linux',
197 sharding_supervisor=True,
198 unsharded_tests=linux_unsharded)
199 pools['chrome'].append('linux')
200
201 b_linux_rel = CreateBuilder(platform='linux',
202 target='Release',
203 options=['--compiler=goma'],
204 tests=linux_tests,
205 builder_name='linux_rel',
206 slavebuilddir='linux',
207 sharding_supervisor=True,
208 unsharded_tests=linux_unsharded,
209 extra_gyp_defines='dcheck_always_on=1')
210
211
212 # Tests that are not single-machine shard-safe on MacOS
213 mac_unsharded = [
214 'gfx_unittests',
215 'interactive_ui_tests',
216 'ipc_tests',
217 'net_unittests',
218 'sql_unittests',
219 'ui_tests',
220 'unit_tests']
221
222 # Mac builder
223 mac_tests = [
224 'check_deps',
225 'base',
226 'net',
227 'googleurl',
228 'unit',
229 'ui',
230 'browser_tests',
231 'test_shell',
232 'webkit_unit',
233 'media',
234 'printing',
235 'remoting',
236 'nacl_integration',
237 'gpu',
238 'interactive_ui',
239 'safe_browsing',
240 'crypto',
241 'pyauto_functional_tests',
242 'cacheinvalidation',
243 'jingle']
244 b_mac = CreateBuilder(platform='mac',
245 target='Debug',
246 tests=mac_tests,
247 options=['--compiler=goma-clang'],
248 extra_gyp_defines='clang=1 clang_use_chrome_plugins=1',
249 builder_name='mac',
250 sharding_supervisor=True,
251 unsharded_tests=mac_unsharded)
252 pools['chrome'].append('mac')
253
254 b_mac_rel = CreateBuilder(platform='mac',
255 target='Release',
256 tests=mac_tests,
257 builder_name='mac_rel',
258 options=['--compiler=goma-clang'],
259 extra_gyp_defines=
260 ('clang=1 ' +
261 'clang_use_chrome_plugins=1 ' +
262 'dcheck_always_on=1'),
263 slavebuilddir='mac',
264 sharding_supervisor=True,
265 unsharded_tests=mac_unsharded)
266
267
268 # Tests that are not single-machine shard-safe on Windows
269 win_unsharded = [
270 'chrome_frame_net_tests',
271 'chrome_frame_unittests',
272 'content_unittests',
273 'gfx_unittests',
274 'interactive_ui_tests',
275 'ipc_tests',
276 'net_unittests',
277 'sql_unittests',
278 'ui_tests',
279 'unit_tests',
280 'views_unittests']
281
282 # Windows builder
283 win_tests = [
284 'check_deps',
285 'base',
286 'net',
287 'googleurl',
288 'unit', 'ui', 'crypto',
289 'browser_tests',
290 'test_shell',
291 'webkit_unit',
292 'media',
293 'chrome_frame_unittests',
294 'chrome_frame_net_tests',
295 'printing',
296 'remoting',
297 'nacl_integration',
298 'gpu',
299 'installer',
300 'interactive_ui',
301 'safe_browsing',
302 'pyauto_functional_tests',
303 'cacheinvalidation',
304 'jingle',
305 'courgette']
306 b_win = CreateBuilder(target='Debug',
307 platform='win32',
308 tests=win_tests,
309 builder_name='win',
310 sharding_supervisor=True,
311 unsharded_tests=win_unsharded)
312 pools['chrome'].append('win')
313
314 b_win_rel = CreateBuilder(target='Release',
315 platform='win32',
316 tests=win_tests,
317 builder_name='win_rel',
318 slavebuilddir='win',
319 sharding_supervisor=True,
320 unsharded_tests=win_unsharded,
321 extra_gyp_defines='dcheck_always_on=1')
322
323
324 # TOOLKIT_VIEWS builder
325 b_view_linux = {
326 'name': 'linux_view',
327 'factory': m_chromium_chromiumos.ChromiumOSFactory(
328 target='Debug',
329 tests=['unit',
330 'base',
331 'net',
332 'googleurl',
333 'media',
334 'crypto',
335 'ui',
336 'printing',
337 'remoting',
338 'browser_tests',
339 'interactive_ui',
340 'safe_browsing',
341 'views',
342 'cacheinvalidation',
343 'jingle',
344 'dbus',
345 ],
346 options=['--compiler=goma',
347 'base_unittests',
348 'browser_tests',
349 'content_unittests',
350 'interactive_ui_tests',
351 'ipc_tests',
352 'googleurl_unittests',
353 'media_unittests',
354 'net_unittests',
355 'printing_unittests',
356 'remoting_unittests',
357 'safe_browsing_tests',
358 'sql_unittests',
359 'sync_unit_tests',
360 'ui_tests',
361 'unit_tests',
362 'views_unittests',
363 'gfx_unittests',
364 'crypto_unittests',
365 'cacheinvalidation_unittests',
366 'jingle_unittests',
367 'dbus_unittests',
368 ],
369 factory_properties={
370 'gclient_env': {'GYP_DEFINES': 'toolkit_views=1 fastbuild=1'}})
371 }
372
373 # Chromium for ChromiumOS
374 b_chromium_chromiumos = {
375 'name': 'linux_chromeos',
376 'factory': m_chromium_chromiumos.ChromiumOSFactory(
377 target='Debug',
378 tests=['unit',
379 'base',
380 'net',
381 'googleurl',
382 'media',
383 'ui',
384 'printing',
385 'remoting',
386 'browser_tests',
387 'interactive_ui',
388 'safe_browsing',
389 'crypto',
390 'cacheinvalidation',
391 'jingle',
392 'dbus',
393 ],
394 options=['--compiler=goma', 'chromeos_builder'],
395 factory_properties={
396 'gclient_env': {'GYP_DEFINES': 'chromeos=1 fastbuild=1'}})
397 }
398
399 # 32 bits tools can't link libwebcore.a anymore due to lack of virtual address
400 # space, including OSX 10.5.
401 valgrind_gyp_defines = (
402 chromium_factory.ChromiumFactory.MEMORY_TOOLS_GYP_DEFINES + ' enable_svg=0')
403
404 b_valgrind_linux = {
405 'name': 'linux_valgrind',
406 'factory': m_chromium_linux.ChromiumFactory(
407 target='Release',
408 options=['--compiler=goma',
409 'base_unittests',
410 'content_unittests',
411 'crypto_unittests',
412 'googleurl_unittests',
413 'ipc_tests',
414 'media_unittests',
415 'net_unittests',
416 'gfx_unittests',
417 'printing_unittests',
418 'remoting_unittests',
419 'safe_browsing_tests',
420 'sql_unittests',
421 'sync_unit_tests',
422 'unit_tests',
423 'ui_tests',
424 'test_shell_tests',
425 'DumpRenderTree',
426 ],
427 tests=['valgrind_base',
428 'valgrind_content',
429 'valgrind_crypto',
430 'valgrind_googleurl',
431 'valgrind_ipc',
432 'valgrind_media',
433 'valgrind_net',
434 'valgrind_printing',
435 'valgrind_remoting',
436 'valgrind_safe_browsing',
437 'valgrind_sql',
438 'valgrind_sync',
439 'valgrind_unit',
440 'valgrind_test_shell',
441 'valgrind_ui_gtest_filter_required',
442 ],
443 factory_properties={
444 'needs_valgrind' : True,
445 'gclient_env': {
446 'GYP_DEFINES' : valgrind_gyp_defines + ' target_arch=ia32'
447 }
448 }
449 ),
450 }
451
452 b_valgrind_mac = {
453 'name': 'mac_valgrind',
454 'factory': m_chromium_mac.ChromiumFactory(
455 target='Debug',
456 # This trybot will build every build target. We can speed up the build
457 # for Valgrind by building only what we really need if/when we want to.
458 # See http://crbug.com/42298
459 tests=['valgrind_base',
460 'valgrind_content',
461 'valgrind_crypto',
462 'valgrind_googleurl',
463 'valgrind_ipc',
464 'valgrind_media',
465 'valgrind_net',
466 'valgrind_printing',
467 'valgrind_remoting',
468 'valgrind_safe_browsing',
469 'valgrind_sql',
470 'valgrind_unit',
471 'valgrind_test_shell',
472 'valgrind_ui_gtest_filter_required',
473 ],
474 factory_properties={
475 'needs_valgrind' : True,
476 'gclient_env': { 'GYP_DEFINES' : valgrind_gyp_defines}}),
477 }
478
479 b_chromium_chromiumos_valgrind = {
480 'name': 'linux_chromeos_valgrind',
481 'factory': m_chromium_chromiumos.ChromiumOSFactory(
482 target='Release',
483 options=['--compiler=goma',
484 'base_unittests',
485 'content_unittests',
486 'crypto_unittests',
487 'googleurl_unittests',
488 'ipc_tests',
489 'media_unittests',
490 'net_unittests',
491 'gfx_unittests',
492 'printing_unittests',
493 'remoting_unittests',
494 'safe_browsing_tests',
495 'sql_unittests',
496 'sync_unit_tests',
497 'unit_tests',
498 ],
499 tests=['valgrind_base',
500 'valgrind_content',
501 'valgrind_crypto',
502 'valgrind_googleurl',
503 'valgrind_ipc',
504 'valgrind_media',
505 'valgrind_net',
506 'valgrind_printing',
507 'valgrind_remoting',
508 'valgrind_safe_browsing',
509 'valgrind_sql',
510 'valgrind_sync',
511 'valgrind_unit',
512 ],
513 factory_properties={
514 'needs_valgrind' : True,
515 'gclient_env': {
516 'GYP_DEFINES' : valgrind_gyp_defines + ' target_arch=ia32 chromeos=1'
517 }
518 }
519 ),
520 }
521
522 b_tsan_linux = {
523 'name': 'linux_tsan',
524 # Reuse the directory.
525 'slavebuilddir': 'linux_valgrind',
526 'factory': m_chromium_linux.ChromiumFactory(
527 target='Release',
528 options=['--compiler=goma',
529 'base_unittests',
530 'content_unittests',
531 'crypto_unittests',
532 'googleurl_unittests',
533 'ipc_tests',
534 'media_unittests',
535 'net_unittests',
536 'gfx_unittests',
537 'printing_unittests',
538 'remoting_unittests',
539 'sql_unittests',
540 'sync_unit_tests',
541 'unit_tests',
542 ],
543 tests=['tsan_base',
544 'tsan_content',
545 'tsan_crypto',
546 'tsan_googleurl',
547 'tsan_ipc',
548 'tsan_media',
549 'tsan_net',
550 'tsan_printing',
551 'tsan_remoting',
552 'tsan_sql',
553 'tsan_sync',
554 'tsan_unit',
555 ],
556 factory_properties={
557 'needs_valgrind' : True,
558 'gclient_env': {
559 'GYP_DEFINES' : valgrind_gyp_defines + ' target_arch=ia32'
560 }
561 }
562 ),
563 }
564
565 # Linux coverage builder
566 GYP_DEFINES_FOR_COVERAGE = ('coverage=1 '
567 'fastbuild=1 '
568 'enable_svg=0 ')
569
570 b_coverage_linux = {
571 'name': 'linux_coverage',
572 'factory': m_chromium_linux.ChromiumFactory(
573 target='Debug',
574 clobber=False,
575 options=['--compiler=goma', 'coverage_build'],
576 tests=['run_coverage_bundles', 'process_coverage'],
577 factory_properties={
578 'gclient_env': { 'GYP_DEFINES' : GYP_DEFINES_FOR_COVERAGE},
579 'perf_id': 'chromium-dbg-linux-try',
580 'use_build_number': True,
581 }),
582 }
583
584 # WebKit Layout builders
585 b_linux_layout = {
586 'name': 'linux_layout',
587 'slavebuilddir': 'linux_layout',
588 'factory': m_chromium_linux.ChromiumFactory(
589 target='Debug',
590 tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu'],
591 options=['--compiler=goma', 'test_shell', 'test_shell_tests',
592 'webkit_unit_tests', 'DumpRenderTree']),
593 }
594 b_linux_layout_rel = {
595 'name': 'linux_layout_rel',
596 # Reuse the directory.
597 'slavebuilddir': 'linux_layout',
598 'factory': m_chromium_linux.ChromiumFactory(
599 target='Release',
600 tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu'],
601 options=['--compiler=goma', 'test_shell', 'test_shell_tests',
602 'webkit_unit_tests', 'DumpRenderTree']),
603 }
604
605 b_mac_layout = {
606 'name': 'mac_layout',
607 'slavebuilddir': 'mac_layout',
608 'factory': m_chromium_mac.ChromiumFactory(
609 target='Debug',
610 tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu'],
611 factory_properties={
612 'gclient_env': { 'GYP_DEFINES' : 'clang=1 clang_use_chrome_plugins=1'}},
613 options=[
614 '--compiler=goma-clang',
615 '--', '-project', '../webkit/webkit.xcodeproj']),
616 }
617 b_mac_layout_rel = {
618 'name': 'mac_layout_rel',
619 # Reuse the directory.
620 'slavebuilddir': 'mac_layout',
621 'factory': m_chromium_mac.ChromiumFactory(
622 target='Release',
623 tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu'],
624 factory_properties={
625 'gclient_env': { 'GYP_DEFINES' : 'clang=1 clang_use_chrome_plugins=1'}},
626 options=[
627 '--compiler=goma-clang',
628 '--', '-project', '../webkit/webkit.xcodeproj']),
629 }
630
631 b_win_layout = {
632 'name': 'win_layout',
633 'slavebuilddir': 'win_layout',
634 'factory': m_chromium_win_webkit.ChromiumFactory(
635 target='Debug',
636 project='all.sln;webkit_builder_win',
637 tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu'])
638 }
639 b_win_layout_rel = {
640 'name': 'win_layout_rel',
641 # Reuse the directory.
642 'slavebuilddir': 'win_layout',
643 'factory': m_chromium_win_webkit.ChromiumFactory(
644 target='Release',
645 project='all.sln;webkit_builder_win',
646 tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu'])
647 }
648
649
650 # Sync builders
651 b_linux_sync = CreateBuilder(
652 platform='linux',
653 target='Debug',
654 options=['--compiler=goma'],
655 tests=['sync_integration'],
656 builder_name='linux_sync',
657 slavebuilddir='linux')
658 b_mac_sync = CreateBuilder(
659 platform='mac',
660 target='Debug',
661 tests=['sync_integration'],
662 builder_name='mac_sync',
663 options=['--compiler=goma-clang'],
664 extra_gyp_defines='clang=1 clang_use_chrome_plugins=1',
665 slavebuilddir='mac')
666 b_win_sync = CreateBuilder(
667 platform='win32',
668 target='Debug',
669 tests=['sync_integration'],
670 builder_name='win_sync',
671 slavebuilddir='win')
672
673 # Clang builders
674 b_linux_clang = CreateBuilder(
675 platform='linux',
676 target='Debug',
677 options=['--build-tool=make', '--compiler=clang'],
678 tests=[],
679 extra_gyp_defines='clang=1 clang_use_chrome_plugins=1',
680 builder_name='linux_clang')
681
682 b_mac_clang_no_goma = CreateBuilder(
683 platform='mac',
684 target='Debug',
685 tests=['base', 'gfx', 'crypto', 'unit'],
686 options=['--compiler=clang'],
687 extra_gyp_defines='clang=1 clang_use_chrome_plugins=1',
688 builder_name='mac_clang_no_goma')
689
690 b_linux_chromeos_clang = {
691 'name': 'linux_chromeos_clang',
692 'factory': m_chromium_chromiumos.ChromiumOSFactory(
693 target='Debug',
694 options=['--build-tool=make', '--compiler=clang', ],
695 tests=[],
696 factory_properties={
697 'gclient_env': {
698 # CreateBuilder() adds "fastbuild=1" for the other 2 clang bots.
699 'GYP_DEFINES' : ('clang=1 clang_use_chrome_plugins=1 '
700 ' target_arch=ia32 chromeos=1 fastbuild=1'),
701 }
702 }
703 ),
704 }
705
706 # Touch builder(s)
707 b_linux_touch = CreateBuilder(
708 platform='linux',
709 target='Debug',
710 options=['--compiler=goma'] +
711 ['base_unittests',
712 'content_unittests',
713 'crypto_unittests',
714 'googleurl_unittests',
715 'gpu_unittests',
716 'media_unittests',
717 'printing_unittests',
718 'remoting_unittests',
719 'net_unittests',
720 'safe_browsing_tests',
721 'cacheinvalidation_unittests',
722 'jingle_unittests',
723 'sql_unittests', # from test target unit
724 'ipc_tests', # from test target unit
725 'sync_unit_tests', # from test target unit
726 'unit_tests', # from test target unit
727 'gfx_unittests', # from test target unit
728 'browser_tests',
729 'ui_tests',
730 'views_unittests',
731 'webkit_unit_tests',
732 ],
733 # tests=linux_tests would be nice, but they fail so badly and take so
734 # long that the bot becomes useless.
735 # TODO(petermayo): Make these test suites work repeatably or remove
736 # specific inappropriate individual tests.
737 tests=['webkit_unit',
738 'sizes', ] +
739 ['check_deps',
740 'googleurl',
741 'media',
742 'printing',
743 'remoting',
744 #'ui',
745 #'browser_tests',
746 'unit',
747 'gpu',
748 'base',
749 #'net',
750 'safe_browsing',
751 'crypto',
752 'cacheinvalidation',
753 'jingle',
754 'views'],
755 # These are tested on other trybots, but not on the main page bot.
756 # [ 'webkit_unit', 'media', 'cacheinvalidation', 'jingle'],
757 extra_gyp_defines='touchui=1',
758 builder_name='linux_touch')
759
760 b_win_shared = CreateBuilder(
761 platform='win32',
762 target='Debug',
763 tests=[],
764 builder_name='win_shared',
765 extra_gyp_defines='component=shared_library')
766
767 b_linux_shared = CreateBuilder(
768 platform='linux',
769 target='Debug',
770 tests=[],
771 builder_name='linux_shared',
772 extra_gyp_defines='component=shared_library')
773
774 b_win_aura = CreateBuilder(
775 platform='win32',
776 target='Debug',
777 builder_name='win_aura',
778 tests=['views', 'compositor', 'aura', 'aura_shell'],
779 extra_gyp_defines='use_aura=1')
780
781 b_linux_aura = CreateBuilder(
782 platform='linux',
783 target='Debug',
784 builder_name='linux_aura',
785 tests=['views', 'compositor', 'aura', 'aura_shell'],
786 options=['aura_builder'],
787 extra_gyp_defines='use_aura=1')
788
789 b_linux_asan = {
790 'name': 'linux_asan',
791 'factory': m_chromium_linux.ChromiumASANFactory(
792 slave_type='BuilderTester',
793 options=[
794 '--compiler=asan',
795 'base_unittests',
796 'browser_tests',
797 'cacheinvalidation_unittests',
798 'content_unittests',
799 'crypto_unittests',
800 'gfx_unittests',
801 'googleurl_unittests',
802 'gpu_unittests',
803 'ipc_tests',
804 'jingle_unittests',
805 'media_unittests',
806 'net_unittests',
807 'printing_unittests',
808 'remoting_unittests',
809 'safe_browsing_tests',
810 'sql_unittests',
811 'sync_unit_tests',
812 'ui_tests',
813 'unit_tests',
814 ],
815 tests=[
816 'base',
817 'browser_tests'
818 'cacheinvalidation',
819 'crypto',
820 'googleurl',
821 'gpu',
822 'jingle',
823 'media',
824 'net',
825 'printing',
826 'remoting',
827 'safe_browsing',
828 'ui',
829 'unit',
830 ],
831 factory_properties={
832 'asan': True, # Use by runtest.py.
833 'gclient_env': {
834 'GYP_DEFINES': 'clang=1 linux_use_tcmalloc=0 disable_nacl=1 ',
835 }
836 }),
837 }
838
839 b_cros_pfq_x86 = CreateCrosBuilder(
840 'cros_x86',
841 '--lkgm x86-generic-tot-chrome-pfq-informational',
842 short_name='x86',
843 )
844
845 b_cros_pfq_arm = CreateCrosBuilder(
846 'cros_arm',
847 '--lkgm arm-generic-tot-chrome-pfq-informational',
848 short_name='arm',
849 )
850
851 b_cros_pfq_tegra2 = CreateCrosBuilder(
852 'cros_tegra2',
853 '--lkgm arm-tegra2-tot-chrome-pfq-informational',
854 short_name='tegra2',
855 )
856
857 # For now we will assume a fixed toolchain location on the builders.
858 crosstool_prefix = (
859 '/usr/local/crosstool-trusted/arm-crosstool/bin/arm-none-linux-gnueabi')
860 # Factory properties to use for an arm build.
861 arm_gclient_env = {
862 'AR': crosstool_prefix + '-ar',
863 'AS': crosstool_prefix + '-as',
864 'CC': crosstool_prefix + '-gcc',
865 'CXX': crosstool_prefix + '-g++',
866 'LD': crosstool_prefix + '-ld',
867 'RANLIB': crosstool_prefix + '-ranlib',
868 'GYP_GENERATORS': 'make',
869 'GYP_DEFINES': (
870 'target_arch=arm '
871 'sysroot=/usr/local/arm-rootfs '
872 'disable_nacl=1 '
873 'linux_use_tcmalloc=0 '
874 'armv7=1 '
875 'arm_thumb=1 '
876 'arm_neon=0 '
877 'arm_fpu=vfpv3-d16 '
878 'chromeos=1 ' # Since this is the intersting variation.
879 ),
880 }
881
882 b_linux_chromeos_arm = {
883 'name': 'linux_chromeos_arm',
884 'factory': m_chromium_chromiumos.ChromiumOSFactory(
885 target='Release',
886 options=['--build-tool=make',
887 '--crosstool=' + crosstool_prefix,
888 'chromeos_builder'],
889 tests=[],
890 factory_properties={'gclient_env': arm_gclient_env}),
891 }
892
893 c['builders'] = [
894 b_linux_rel, b_mac_rel, b_win_rel,
895 b_linux_clang,
896 b_linux, b_mac, b_win,
897 b_view_linux, b_chromium_chromiumos,
898 b_valgrind_linux, b_valgrind_mac,
899 b_chromium_chromiumos_valgrind, b_tsan_linux,
900 b_linux_layout, b_mac_layout, b_win_layout,
901 b_linux_layout_rel, b_mac_layout_rel, b_win_layout_rel,
902 b_coverage_linux,
903 b_linux_sync, b_mac_sync, b_win_sync,
904 b_mac_clang_no_goma,
905 b_linux_chromeos_clang,
906 b_linux_touch,
907 b_win_shared,
908 b_linux_shared,
909 b_win_aura, b_linux_aura,
910 b_linux_asan,
911 b_linux_chromeos_arm,
912 b_cros_pfq_x86, b_cros_pfq_arm, b_cros_pfq_tegra2,
913 ]
914
915
916 # Slaves are loaded from slaves.cfg.
917 slaves = slaves_list.SlavesList('slaves.cfg', 'TryServer')
918
919 # Associate the slaves to the builders. The configuration is in slaves.cfg.
920 for builder in c['builders']:
921 builder['slavenames'] = slaves.GetSlavesName(builder=builder['name'])
922 # Don't enable auto_reboot for people testing locally.
923 builder['auto_reboot'] = ActiveMaster.is_production_host
924 104
925 105
926 ####### BUILDSLAVES 106 ####### BUILDSLAVES
927 107
108 # the 'slaves' list defines the set of allowable buildslaves. Each element is a
109 # tuple of bot-name and bot-password. These correspond to values given to the
110 # buildslave's mktap invocation.
111
112 # First, load the list from slaves.cfg.
113 slaves = slaves_list.SlavesList('slaves.cfg', 'ChromiumOSTryServer')
114
115 # Associate the slaves to the builders.
116 for builder in c['builders']:
117 builder['slavenames'] = slaves.GetSlavesName(builder=builder['name'])
118 print "%s -> %s" % (builder['name'], builder['slavenames'])
119 # Don't enable auto_reboot for people testing locally.
120 print "is_production_host=%s" % ActiveMaster.is_production_host
121 builder.setdefault('auto_reboot', ActiveMaster.is_production_host)
122
928 # The 'slaves' list defines the set of allowable buildslaves. List all the 123 # The 'slaves' list defines the set of allowable buildslaves. List all the
929 # slaves registered to a builder. Remove dupes. 124 # slaves registered to a builder. Remove dupes.
930 c['slaves'] = master_utils.AutoSetupSlaves(c['builders'], 125 c['slaves'] = master_utils.AutoSetupSlaves(c['builders'],
931 config.Master.GetBotPassword()) 126 config.Master.GetBotPassword())
932 127
933 # Make sure everything works together.
934 master_utils.VerifySetup(c, slaves)
935
936
937 ####### SCHEDULERS 128 ####### SCHEDULERS
938 129
939 # Configure the Schedulers;
940 # Main Tryscheduler for the try queue. groups is defined in the loop above.
941 c['schedulers'] = [] 130 c['schedulers'] = []
942 131
943 last_good_urls = {'chrome': ActiveMaster.last_good_url} 132 c['schedulers'].append(CrOSTryJobGit(
944 code_review_sites = {'chrome': ActiveMaster.code_review_site} 133 name='cros_try_job_git',
945 134 pools=pools,
946 c['schedulers'].append(TryJobHTTP( 135 repo_url=ActiveMaster.repo_url
947 name='try_job_http', 136 ))
948 port=ActiveMaster.try_job_port,
949 last_good_urls=last_good_urls,
950 code_review_sites=code_review_sites,
951 pools=pools))
952
953 if LISTEN_TO_SVN:
954 c['schedulers'].append(TryJobSubversion(
955 name='try_job_svn',
956 svn_url=ActiveMaster.svn_url,
957 last_good_urls=last_good_urls,
958 code_review_sites=code_review_sites,
959 pools=pools))
960
961 137
962 ####### STATUS TARGETS 138 ####### STATUS TARGETS
963 139
964 # Adds common status and tools to this master. 140 # Adds common status and tools to this master.
965 # Use our own mail notifier. 141 master_utils.AutoSetupMaster(c, ActiveMaster, order_console_by_time=True)
966 master_utils.AutoSetupMaster(c, ActiveMaster, False)
967 142
968 if STATUS_PUSH: 143 # Add a dumb MailNotifier first so it will be used for BuildSlave with
969 from master.status_push import HttpStatusPush 144 # notify_on_missing set when they go missing.
970 c['status'].append(HttpStatusPush( 145 from buildbot.status import mail
971 'http://craebuild.appspot.com/status-listener')) 146 c['status'].append(mail.MailNotifier(
147 fromaddr=ActiveMaster.from_address,
148 builders=[],
149 relayhost=config.Master.smtp,
150 lookup=master_utils.UsersAreEmails()))
972 151
973 if MAIL_NOTIFIER: 152 # Try job result emails.
974 # Add a dumb MailNotifier first so it will be used for BuildSlave with 153 from master.try_mail_notifier import TryMailNotifier
975 # notify_on_missing set when they go missing. 154 c['status'].append(TryMailNotifier(
976 from buildbot.status import mail 155 fromaddr=ActiveMaster.from_address,
977 c['status'].append(mail.MailNotifier( 156 subject="try %(result)s for %(reason)s on %(builder)s",
978 fromaddr=ActiveMaster.from_address, 157 mode='all',
979 builders=[], 158 relayhost=config.Master.smtp,
980 relayhost=config.Master.smtp, 159 lookup=master_utils.UsersAreEmails()))
981 lookup=master_utils.UsersAreEmails()))
982
983 # Try job result emails.
984 from master.try_mail_notifier import TryMailNotifier
985 c['status'].append(TryMailNotifier(
986 fromaddr=ActiveMaster.from_address,
987 subject="try %(result)s for %(reason)s on %(builder)s @ r%(revision)s",
988 mode='all',
989 relayhost=config.Master.smtp,
990 lookup=master_utils.UsersAreEmails()))
991
992 if UPDATE_CODEREVIEW:
993 c['status'].append(try_job_status_update.TryJobStatusUpdate(None))
994
995
996 # Keep last try jobs, the default is too low. Must keep at least a few days
997 # worth of try jobs.
998 c['buildHorizon'] = 3000
999 c['logHorizon'] = 3000
1000 # Must be at least 2x the number of slaves.
1001 c['eventHorizon'] = 200
1002 # Must be at least 2x the number of on-going builds.
1003 c['buildCacheSize'] = 200
1004 c['logCompressionLimit'] = False
1005
1006
1007 # Hack buildbot so the Stop build button doesn't work anymore. Otherwise it's
1008 # just a pain, user misuse this button all the time.
1009 def hack_stop(function):
1010 def hook(*args, **kwargs):
1011 result = function(*args, **kwargs)
1012 result = result.replace('<input type="submit" value="Stop',
1013 '<input type="button" onclick="alert(\''
1014 'For more information, visit '
1015 'http://dev.chromium.org/developers/try-server-usage'
1016 '\');"'
1017 ' value="Stop')
1018 return result
1019 return hook
1020
1021 # Only do the hack_stop if we are the production master. This allows
1022 # us to keep the STOP button live for local/test instances.
1023 if ActiveMaster.is_production_host:
1024 from buildbot.status.web.builder import StatusResourceBuilder
1025 StatusResourceBuilder.build_line = hack_stop(StatusResourceBuilder.build_line)
1026 from buildbot.status.web import base
1027 base.make_stop_form = hack_stop(base.make_stop_form)
1028 160
1029 161
1030 ####### PROJECT IDENTITY 162 ####### PROJECT IDENTITY
1031 163
1032 # The 'projectURL' string will be used to provide a link
1033 # from buildbot HTML pages to your project's home page.
1034 c['projectURL'] = 'http://dev.chromium.org/developers/testing/try-server-usage'
1035
1036 # Buildbot master url: 164 # Buildbot master url:
1037 c['buildbotURL'] = 'http://build.chromium.org/p/tryserver.chromium/' 165 c['buildbotURL'] = ''
1038
1039 # vi: set ts=4 sts=2 sw=2 et:
OLDNEW
« no previous file with comments | « no previous file | masters/master.tryserver.chromiumos/public_html/announce.html » ('j') | scripts/master/try_job_base.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698