Index: masters/master.tryserver.chromiumos/master.cfg |
=================================================================== |
--- masters/master.tryserver.chromiumos/master.cfg (revision 105558) |
+++ masters/master.tryserver.chromiumos/master.cfg (working copy) |
@@ -1,1039 +1,165 @@ |
# -*- python -*- |
# ex: set syntax=python: |
+ |
# Copyright (c) 2011 The Chromium Authors. All rights reserved. |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
-# READ THIS: |
-# See http://dev.chromium.org/developers/testing/chromium-build-infrastructure |
+# This is the buildmaster config file for the 'chromeos' bot. It must |
+# be installed as 'master.cfg' in your buildmaster's base directory |
+# (although the filename can be changed with the --basedir option to |
+# 'mktap buildbot master'). |
-# These modules come from scripts, which must be in the PYTHONPATH. |
+# It has one job: define a dictionary named BuildmasterConfig. This |
+# dictionary has a variety of keys to control different aspects of the |
+# buildmaster. They are documented in docs/config.xhtml . |
+ |
+# These modules come from scripts/master, which must be in the PYTHONPATH. |
+import master.cros_builder_mapping as cros_builder_mapping |
+# Perform reload so a 'make reconfig' picks up changes to cros_builder_mapping |
+reload(cros_builder_mapping) |
+ |
from master import master_utils |
from master import slaves_list |
-from master import try_job_status_update |
-from master.builders_pools import BuildersPools |
-from master.factory import chromium_factory, chromeos_factory |
-from master.try_job_http import TryJobHTTP |
-from master.try_job_svn import TryJobSubversion |
+from master.cros_builders_pools import CrOSBuildersPools |
+from master.cros_try_job_git import CrOSTryJobGit |
+from master.factory import chromeos_factory |
+# These modules come from scripts/common, which must be in the PYTHONPATH. |
import config |
-ActiveMaster = config.Master.TryServer |
+ActiveMaster = config.Master.ChromiumOSTryServer |
+TREE_GATE_KEEPER = ActiveMaster.is_production_host |
-STATUS_PUSH = False |
-MAIL_NOTIFIER = True |
-UPDATE_CODEREVIEW = ActiveMaster.is_production_host |
-LISTEN_TO_SVN = ActiveMaster.svn_url and ActiveMaster.is_production_host |
- |
# This is the dictionary that the buildmaster pays attention to. We also use |
# a shorter alias to save typing. |
c = BuildmasterConfig = {} |
- |
####### CHANGESOURCES |
-c['change_source'] = [ ] |
+c['change_source'] = [] |
- |
####### BUILDERS |
-## FACTORIES |
+pools = CrOSBuildersPools(default_pool_name='ChromeOS', |
+ 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.
|
-m_chromium_win = chromium_factory.ChromiumFactory( |
- 'src/build', |
- target_platform='win32') |
+BUILDERS = [] |
-m_chromium_win_webkit = chromium_factory.ChromiumFactory( |
- 'src/build', |
- target_platform='win32') |
+# ---------------------------------------------------------------------------- |
+# BUILDER DEFINITIONS |
-m_chromium_linux = chromium_factory.ChromiumFactory( |
- 'src/build', |
- target_platform='linux2') |
+# The 'builders' list defines the Builders. Each one is configured with a |
+# dictionary, using the following keys: |
+# name (required): the name used to describe this bilder |
+# slavename (required): which slave to use, must appear in c['slaves'] |
+# builddir (required): which subdirectory to run the builder in |
+# factory (required): a BuildFactory to define how the build is run |
+# category (optional): it is not used in the normal 'buildbot' meaning. It is |
+# used by gatekeeper to determine which steps it should |
+# look for to close the tree. |
+# |
-m_chromium_mac = chromium_factory.ChromiumFactory( |
- 'src/build', |
- target_platform='darwin') |
+# Cros helper functions to build builders and factories. |
-# Chromium for ChromiumOS |
-m_chromium_chromiumos = chromium_factory.ChromiumFactory( |
- 'src/build', |
- target_platform='linux2') |
+def GetCBuildbotFactory(config): |
+ """Returns cros buildbot factories.""" |
+ return chromeos_factory.CbuildbotFactory( |
+ params=config, trybot=True, crostools_repo=None).get_factory() |
M-A Ruel
2011/10/14 23:21:20
Use 2 lines between file level symbols.
rcui1
2011/10/14 23:52:08
Done.
|
+def AddBuilderDefinition(display_name): |
+ """Adds a builder definition given by the args. |
-def CreateBuilder(platform, builder_name, target, |
- tests=None, options=None, mode=None, timeout=2400, |
- slavebuilddir=None, extra_gyp_defines=None, |
- gclient_env=None, sharding_supervisor=False, |
- unsharded_tests=None): |
- """Generates and register a builder along with its slave(s).""" |
- if platform not in ('win32', 'win64', 'linux', 'mac'): |
- raise Exception(platform + ' is not a known os type') |
- factory_properties = { |
- 'non_default': [ |
- 'check_licenses', |
- 'pyauto_functional_tests', |
- 'googleurl_unittests' |
- ], |
- } |
- if sharding_supervisor: |
- factory_properties['sharding_supervisor'] = True |
- factory_properties['unsharded_tests'] = unsharded_tests or [] |
- project = None |
- if platform in ('win32', 'win64'): |
- factory = m_chromium_win |
- if builder_name == 'win_aura': |
- project = 'all.sln;aura_builder' |
- else: |
- project = 'all.sln' |
- factory_properties['process_dumps'] = True |
- factory_properties['gclient_env'] = { 'GYP_DEFINES' : 'fastbuild=1' } |
- factory_properties['start_crash_handler'] = True |
- elif platform == 'linux': |
- factory = m_chromium_linux |
- factory_properties['gclient_env'] = { 'GYP_DEFINES' : 'fastbuild=1' } |
- elif platform == 'mac': |
- factory = m_chromium_mac |
- factory_properties['gclient_env'] = { |
- 'GYP_DEFINES' : 'fastbuild=1 enable_svg=0' } |
- if gclient_env: |
- factory_properties['gclient_env'] = gclient_env |
- if extra_gyp_defines: |
- factory_properties['gclient_env']['GYP_DEFINES'] += ' ' + extra_gyp_defines |
- builder_factory = factory.ChromiumFactory( |
- slave_type='Trybot', target=target, tests=tests, options=options, |
- mode=mode, compile_timeout=timeout, project=project, |
- factory_properties=factory_properties) |
- builder_info = { |
- 'name': builder_name, |
- 'factory': builder_factory, |
- } |
- if slavebuilddir: |
- builder_info['slavebuilddir'] = slavebuilddir |
- return builder_info |
+ Args: |
+ display_name: Name displayed on buildbot waterfall. |
+ """ |
+ def GetConfig(): |
+ return cros_builder_mapping.NAME_CONFIG_DICT.get(display_name, display_name) |
+ BUILDERS.append({ |
+ 'name': display_name, |
+ 'builddir': display_name.replace(' ', '-'), |
+ 'factory': GetCBuildbotFactory(GetConfig()), |
+ 'category': '1release full|info', |
+ }) |
-def CreateCrosBuilder(builder_name, target, slavebuilddir=None, |
- short_name=None): |
- """Generates and register a ChromeOS builder along with its slave(s).""" |
+ pools['ChromeOS'].append(display_name) |
- if short_name: |
- buildroot = '/b/cbuild.%s' % short_name |
- else: |
- buildroot = '/b/cbuild' |
+# Pre Flight Queues |
+AddBuilderDefinition('x86 generic PFQ') |
+AddBuilderDefinition('arm generic PFQ') |
+AddBuilderDefinition('tegra2 PFQ') |
- # Sets up a factory with the steps to pull out a chromium source tree and |
- # apply a patch from a try job |
- trial_chrome_factory = m_chromium_chromiumos.ChromiumOSFactory( |
- target=None, |
- slave_type='CrossTry', |
- tests=[], |
- ) |
+# Full Builders |
+AddBuilderDefinition('x86 generic full') |
+AddBuilderDefinition('arm generic full') |
+AddBuilderDefinition('tegra2 full') |
+AddBuilderDefinition('tegra2 seaboard full') |
+AddBuilderDefinition('x86 pineview full') |
- # Extends that factory with a Cbuildbot build steps to build and test |
- # CrOS using the chrome from the above chromium source tree |
- builder_factory = chromeos_factory.ChromeCbuildbotFactory( |
- params=target, |
- buildroot=buildroot, |
- crostools_repo=None, |
- dry_run=True, |
- chrome_root='.', # this is where ChromiumOSFactory has put "Chrome" |
- factory=trial_chrome_factory, |
- slave_manager=False, |
- ).get_factory() |
+AddBuilderDefinition('chromiumos sdk',) |
- builder_info = { |
- 'name': builder_name, |
- 'factory': builder_factory, |
- } |
- if slavebuilddir: |
- builder_info['slavebuilddir'] = slavebuilddir |
- return builder_info |
+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.
|
-# Try queues. |
-pools = BuildersPools('chrome') |
+####### BUILDSLAVES |
-# Tests that are not single-machine shard-safe on Linux |
-linux_unsharded = [ |
- 'gfx_unittests', |
- 'interactive_ui_tests', |
- 'net_unittests', |
- 'sql_unittests', |
- 'ui_tests', |
- 'unit_tests', |
- # dbus_unittests is not sharded because it takes less than 1 second to run. |
- 'dbus_unittests'] |
+# the 'slaves' list defines the set of allowable buildslaves. Each element is a |
+# tuple of bot-name and bot-password. These correspond to values given to the |
+# buildslave's mktap invocation. |
-# Linux builder |
-linux_tests = [ |
- 'check_deps', |
- 'check_licenses', |
- 'base', |
- 'net', |
- 'googleurl', |
- 'unit', |
- 'ui', |
- 'browser_tests', |
- 'test_shell', |
- 'webkit_unit', |
- 'media', |
- 'printing', |
- 'remoting', |
- 'nacl_integration', |
- 'gpu', |
- 'interactive_ui', |
- 'safe_browsing', |
- 'crypto', |
- 'cacheinvalidation', |
- 'jingle', |
- 'dbus',] |
-b_linux = CreateBuilder(platform='linux', |
- target='Debug', |
- options=['--compiler=goma'], |
- tests=linux_tests, |
- builder_name='linux', |
- sharding_supervisor=True, |
- unsharded_tests=linux_unsharded) |
-pools['chrome'].append('linux') |
+# First, load the list from slaves.cfg. |
+slaves = slaves_list.SlavesList('slaves.cfg', 'ChromiumOSTryServer') |
-b_linux_rel = CreateBuilder(platform='linux', |
- target='Release', |
- options=['--compiler=goma'], |
- tests=linux_tests, |
- builder_name='linux_rel', |
- slavebuilddir='linux', |
- sharding_supervisor=True, |
- unsharded_tests=linux_unsharded, |
- extra_gyp_defines='dcheck_always_on=1') |
- |
- |
-# Tests that are not single-machine shard-safe on MacOS |
-mac_unsharded = [ |
- 'gfx_unittests', |
- 'interactive_ui_tests', |
- 'ipc_tests', |
- 'net_unittests', |
- 'sql_unittests', |
- 'ui_tests', |
- 'unit_tests'] |
- |
-# Mac builder |
-mac_tests = [ |
- 'check_deps', |
- 'base', |
- 'net', |
- 'googleurl', |
- 'unit', |
- 'ui', |
- 'browser_tests', |
- 'test_shell', |
- 'webkit_unit', |
- 'media', |
- 'printing', |
- 'remoting', |
- 'nacl_integration', |
- 'gpu', |
- 'interactive_ui', |
- 'safe_browsing', |
- 'crypto', |
- 'pyauto_functional_tests', |
- 'cacheinvalidation', |
- 'jingle'] |
-b_mac = CreateBuilder(platform='mac', |
- target='Debug', |
- tests=mac_tests, |
- options=['--compiler=goma-clang'], |
- extra_gyp_defines='clang=1 clang_use_chrome_plugins=1', |
- builder_name='mac', |
- sharding_supervisor=True, |
- unsharded_tests=mac_unsharded) |
-pools['chrome'].append('mac') |
- |
-b_mac_rel = CreateBuilder(platform='mac', |
- target='Release', |
- tests=mac_tests, |
- builder_name='mac_rel', |
- options=['--compiler=goma-clang'], |
- extra_gyp_defines= |
- ('clang=1 ' + |
- 'clang_use_chrome_plugins=1 ' + |
- 'dcheck_always_on=1'), |
- slavebuilddir='mac', |
- sharding_supervisor=True, |
- unsharded_tests=mac_unsharded) |
- |
- |
-# Tests that are not single-machine shard-safe on Windows |
-win_unsharded = [ |
- 'chrome_frame_net_tests', |
- 'chrome_frame_unittests', |
- 'content_unittests', |
- 'gfx_unittests', |
- 'interactive_ui_tests', |
- 'ipc_tests', |
- 'net_unittests', |
- 'sql_unittests', |
- 'ui_tests', |
- 'unit_tests', |
- 'views_unittests'] |
- |
-# Windows builder |
-win_tests = [ |
- 'check_deps', |
- 'base', |
- 'net', |
- 'googleurl', |
- 'unit', 'ui', 'crypto', |
- 'browser_tests', |
- 'test_shell', |
- 'webkit_unit', |
- 'media', |
- 'chrome_frame_unittests', |
- 'chrome_frame_net_tests', |
- 'printing', |
- 'remoting', |
- 'nacl_integration', |
- 'gpu', |
- 'installer', |
- 'interactive_ui', |
- 'safe_browsing', |
- 'pyauto_functional_tests', |
- 'cacheinvalidation', |
- 'jingle', |
- 'courgette'] |
-b_win = CreateBuilder(target='Debug', |
- platform='win32', |
- tests=win_tests, |
- builder_name='win', |
- sharding_supervisor=True, |
- unsharded_tests=win_unsharded) |
-pools['chrome'].append('win') |
- |
-b_win_rel = CreateBuilder(target='Release', |
- platform='win32', |
- tests=win_tests, |
- builder_name='win_rel', |
- slavebuilddir='win', |
- sharding_supervisor=True, |
- unsharded_tests=win_unsharded, |
- extra_gyp_defines='dcheck_always_on=1') |
- |
- |
-# TOOLKIT_VIEWS builder |
-b_view_linux = { |
- 'name': 'linux_view', |
- 'factory': m_chromium_chromiumos.ChromiumOSFactory( |
- target='Debug', |
- tests=['unit', |
- 'base', |
- 'net', |
- 'googleurl', |
- 'media', |
- 'crypto', |
- 'ui', |
- 'printing', |
- 'remoting', |
- 'browser_tests', |
- 'interactive_ui', |
- 'safe_browsing', |
- 'views', |
- 'cacheinvalidation', |
- 'jingle', |
- 'dbus', |
- ], |
- options=['--compiler=goma', |
- 'base_unittests', |
- 'browser_tests', |
- 'content_unittests', |
- 'interactive_ui_tests', |
- 'ipc_tests', |
- 'googleurl_unittests', |
- 'media_unittests', |
- 'net_unittests', |
- 'printing_unittests', |
- 'remoting_unittests', |
- 'safe_browsing_tests', |
- 'sql_unittests', |
- 'sync_unit_tests', |
- 'ui_tests', |
- 'unit_tests', |
- 'views_unittests', |
- 'gfx_unittests', |
- 'crypto_unittests', |
- 'cacheinvalidation_unittests', |
- 'jingle_unittests', |
- 'dbus_unittests', |
- ], |
- factory_properties={ |
- 'gclient_env': {'GYP_DEFINES': 'toolkit_views=1 fastbuild=1'}}) |
-} |
- |
-# Chromium for ChromiumOS |
-b_chromium_chromiumos = { |
- 'name': 'linux_chromeos', |
- 'factory': m_chromium_chromiumos.ChromiumOSFactory( |
- target='Debug', |
- tests=['unit', |
- 'base', |
- 'net', |
- 'googleurl', |
- 'media', |
- 'ui', |
- 'printing', |
- 'remoting', |
- 'browser_tests', |
- 'interactive_ui', |
- 'safe_browsing', |
- 'crypto', |
- 'cacheinvalidation', |
- 'jingle', |
- 'dbus', |
- ], |
- options=['--compiler=goma', 'chromeos_builder'], |
- factory_properties={ |
- 'gclient_env': {'GYP_DEFINES': 'chromeos=1 fastbuild=1'}}) |
-} |
- |
-# 32 bits tools can't link libwebcore.a anymore due to lack of virtual address |
-# space, including OSX 10.5. |
-valgrind_gyp_defines = ( |
- chromium_factory.ChromiumFactory.MEMORY_TOOLS_GYP_DEFINES + ' enable_svg=0') |
- |
-b_valgrind_linux = { |
- 'name': 'linux_valgrind', |
- 'factory': m_chromium_linux.ChromiumFactory( |
- target='Release', |
- options=['--compiler=goma', |
- 'base_unittests', |
- 'content_unittests', |
- 'crypto_unittests', |
- 'googleurl_unittests', |
- 'ipc_tests', |
- 'media_unittests', |
- 'net_unittests', |
- 'gfx_unittests', |
- 'printing_unittests', |
- 'remoting_unittests', |
- 'safe_browsing_tests', |
- 'sql_unittests', |
- 'sync_unit_tests', |
- 'unit_tests', |
- 'ui_tests', |
- 'test_shell_tests', |
- 'DumpRenderTree', |
- ], |
- tests=['valgrind_base', |
- 'valgrind_content', |
- 'valgrind_crypto', |
- 'valgrind_googleurl', |
- 'valgrind_ipc', |
- 'valgrind_media', |
- 'valgrind_net', |
- 'valgrind_printing', |
- 'valgrind_remoting', |
- 'valgrind_safe_browsing', |
- 'valgrind_sql', |
- 'valgrind_sync', |
- 'valgrind_unit', |
- 'valgrind_test_shell', |
- 'valgrind_ui_gtest_filter_required', |
- ], |
- factory_properties={ |
- 'needs_valgrind' : True, |
- 'gclient_env': { |
- 'GYP_DEFINES' : valgrind_gyp_defines + ' target_arch=ia32' |
- } |
- } |
- ), |
-} |
- |
-b_valgrind_mac = { |
- 'name': 'mac_valgrind', |
- 'factory': m_chromium_mac.ChromiumFactory( |
- target='Debug', |
- # This trybot will build every build target. We can speed up the build |
- # for Valgrind by building only what we really need if/when we want to. |
- # See http://crbug.com/42298 |
- tests=['valgrind_base', |
- 'valgrind_content', |
- 'valgrind_crypto', |
- 'valgrind_googleurl', |
- 'valgrind_ipc', |
- 'valgrind_media', |
- 'valgrind_net', |
- 'valgrind_printing', |
- 'valgrind_remoting', |
- 'valgrind_safe_browsing', |
- 'valgrind_sql', |
- 'valgrind_unit', |
- 'valgrind_test_shell', |
- 'valgrind_ui_gtest_filter_required', |
- ], |
- factory_properties={ |
- 'needs_valgrind' : True, |
- 'gclient_env': { 'GYP_DEFINES' : valgrind_gyp_defines}}), |
-} |
- |
-b_chromium_chromiumos_valgrind = { |
- 'name': 'linux_chromeos_valgrind', |
- 'factory': m_chromium_chromiumos.ChromiumOSFactory( |
- target='Release', |
- options=['--compiler=goma', |
- 'base_unittests', |
- 'content_unittests', |
- 'crypto_unittests', |
- 'googleurl_unittests', |
- 'ipc_tests', |
- 'media_unittests', |
- 'net_unittests', |
- 'gfx_unittests', |
- 'printing_unittests', |
- 'remoting_unittests', |
- 'safe_browsing_tests', |
- 'sql_unittests', |
- 'sync_unit_tests', |
- 'unit_tests', |
- ], |
- tests=['valgrind_base', |
- 'valgrind_content', |
- 'valgrind_crypto', |
- 'valgrind_googleurl', |
- 'valgrind_ipc', |
- 'valgrind_media', |
- 'valgrind_net', |
- 'valgrind_printing', |
- 'valgrind_remoting', |
- 'valgrind_safe_browsing', |
- 'valgrind_sql', |
- 'valgrind_sync', |
- 'valgrind_unit', |
- ], |
- factory_properties={ |
- 'needs_valgrind' : True, |
- 'gclient_env': { |
- 'GYP_DEFINES' : valgrind_gyp_defines + ' target_arch=ia32 chromeos=1' |
- } |
- } |
- ), |
-} |
- |
-b_tsan_linux = { |
- 'name': 'linux_tsan', |
- # Reuse the directory. |
- 'slavebuilddir': 'linux_valgrind', |
- 'factory': m_chromium_linux.ChromiumFactory( |
- target='Release', |
- options=['--compiler=goma', |
- 'base_unittests', |
- 'content_unittests', |
- 'crypto_unittests', |
- 'googleurl_unittests', |
- 'ipc_tests', |
- 'media_unittests', |
- 'net_unittests', |
- 'gfx_unittests', |
- 'printing_unittests', |
- 'remoting_unittests', |
- 'sql_unittests', |
- 'sync_unit_tests', |
- 'unit_tests', |
- ], |
- tests=['tsan_base', |
- 'tsan_content', |
- 'tsan_crypto', |
- 'tsan_googleurl', |
- 'tsan_ipc', |
- 'tsan_media', |
- 'tsan_net', |
- 'tsan_printing', |
- 'tsan_remoting', |
- 'tsan_sql', |
- 'tsan_sync', |
- 'tsan_unit', |
- ], |
- factory_properties={ |
- 'needs_valgrind' : True, |
- 'gclient_env': { |
- 'GYP_DEFINES' : valgrind_gyp_defines + ' target_arch=ia32' |
- } |
- } |
- ), |
-} |
- |
-# Linux coverage builder |
-GYP_DEFINES_FOR_COVERAGE = ('coverage=1 ' |
- 'fastbuild=1 ' |
- 'enable_svg=0 ') |
- |
-b_coverage_linux = { |
- 'name': 'linux_coverage', |
- 'factory': m_chromium_linux.ChromiumFactory( |
- target='Debug', |
- clobber=False, |
- options=['--compiler=goma', 'coverage_build'], |
- tests=['run_coverage_bundles', 'process_coverage'], |
- factory_properties={ |
- 'gclient_env': { 'GYP_DEFINES' : GYP_DEFINES_FOR_COVERAGE}, |
- 'perf_id': 'chromium-dbg-linux-try', |
- 'use_build_number': True, |
- }), |
-} |
- |
-# WebKit Layout builders |
-b_linux_layout = { |
- 'name': 'linux_layout', |
- 'slavebuilddir': 'linux_layout', |
- 'factory': m_chromium_linux.ChromiumFactory( |
- target='Debug', |
- tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu'], |
- options=['--compiler=goma', 'test_shell', 'test_shell_tests', |
- 'webkit_unit_tests', 'DumpRenderTree']), |
-} |
-b_linux_layout_rel = { |
- 'name': 'linux_layout_rel', |
- # Reuse the directory. |
- 'slavebuilddir': 'linux_layout', |
- 'factory': m_chromium_linux.ChromiumFactory( |
- target='Release', |
- tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu'], |
- options=['--compiler=goma', 'test_shell', 'test_shell_tests', |
- 'webkit_unit_tests', 'DumpRenderTree']), |
-} |
- |
-b_mac_layout = { |
- 'name': 'mac_layout', |
- 'slavebuilddir': 'mac_layout', |
- 'factory': m_chromium_mac.ChromiumFactory( |
- target='Debug', |
- tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu'], |
- factory_properties={ |
- 'gclient_env': { 'GYP_DEFINES' : 'clang=1 clang_use_chrome_plugins=1'}}, |
- options=[ |
- '--compiler=goma-clang', |
- '--', '-project', '../webkit/webkit.xcodeproj']), |
-} |
-b_mac_layout_rel = { |
- 'name': 'mac_layout_rel', |
- # Reuse the directory. |
- 'slavebuilddir': 'mac_layout', |
- 'factory': m_chromium_mac.ChromiumFactory( |
- target='Release', |
- tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu'], |
- factory_properties={ |
- 'gclient_env': { 'GYP_DEFINES' : 'clang=1 clang_use_chrome_plugins=1'}}, |
- options=[ |
- '--compiler=goma-clang', |
- '--', '-project', '../webkit/webkit.xcodeproj']), |
-} |
- |
-b_win_layout = { |
- 'name': 'win_layout', |
- 'slavebuilddir': 'win_layout', |
- 'factory': m_chromium_win_webkit.ChromiumFactory( |
- target='Debug', |
- project='all.sln;webkit_builder_win', |
- tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu']) |
-} |
-b_win_layout_rel = { |
- 'name': 'win_layout_rel', |
- # Reuse the directory. |
- 'slavebuilddir': 'win_layout', |
- 'factory': m_chromium_win_webkit.ChromiumFactory( |
- target='Release', |
- project='all.sln;webkit_builder_win', |
- tests=['test_shell', 'webkit_unit', 'webkit', 'webkit_gpu']) |
-} |
- |
- |
-# Sync builders |
-b_linux_sync = CreateBuilder( |
- platform='linux', |
- target='Debug', |
- options=['--compiler=goma'], |
- tests=['sync_integration'], |
- builder_name='linux_sync', |
- slavebuilddir='linux') |
-b_mac_sync = CreateBuilder( |
- platform='mac', |
- target='Debug', |
- tests=['sync_integration'], |
- builder_name='mac_sync', |
- options=['--compiler=goma-clang'], |
- extra_gyp_defines='clang=1 clang_use_chrome_plugins=1', |
- slavebuilddir='mac') |
-b_win_sync = CreateBuilder( |
- platform='win32', |
- target='Debug', |
- tests=['sync_integration'], |
- builder_name='win_sync', |
- slavebuilddir='win') |
- |
-# Clang builders |
-b_linux_clang = CreateBuilder( |
- platform='linux', |
- target='Debug', |
- options=['--build-tool=make', '--compiler=clang'], |
- tests=[], |
- extra_gyp_defines='clang=1 clang_use_chrome_plugins=1', |
- builder_name='linux_clang') |
- |
-b_mac_clang_no_goma = CreateBuilder( |
- platform='mac', |
- target='Debug', |
- tests=['base', 'gfx', 'crypto', 'unit'], |
- options=['--compiler=clang'], |
- extra_gyp_defines='clang=1 clang_use_chrome_plugins=1', |
- builder_name='mac_clang_no_goma') |
- |
-b_linux_chromeos_clang = { |
- 'name': 'linux_chromeos_clang', |
- 'factory': m_chromium_chromiumos.ChromiumOSFactory( |
- target='Debug', |
- options=['--build-tool=make', '--compiler=clang', ], |
- tests=[], |
- factory_properties={ |
- 'gclient_env': { |
- # CreateBuilder() adds "fastbuild=1" for the other 2 clang bots. |
- 'GYP_DEFINES' : ('clang=1 clang_use_chrome_plugins=1 ' |
- ' target_arch=ia32 chromeos=1 fastbuild=1'), |
- } |
- } |
- ), |
-} |
- |
-# Touch builder(s) |
-b_linux_touch = CreateBuilder( |
- platform='linux', |
- target='Debug', |
- options=['--compiler=goma'] + |
- ['base_unittests', |
- 'content_unittests', |
- 'crypto_unittests', |
- 'googleurl_unittests', |
- 'gpu_unittests', |
- 'media_unittests', |
- 'printing_unittests', |
- 'remoting_unittests', |
- 'net_unittests', |
- 'safe_browsing_tests', |
- 'cacheinvalidation_unittests', |
- 'jingle_unittests', |
- 'sql_unittests', # from test target unit |
- 'ipc_tests', # from test target unit |
- 'sync_unit_tests', # from test target unit |
- 'unit_tests', # from test target unit |
- 'gfx_unittests', # from test target unit |
- 'browser_tests', |
- 'ui_tests', |
- 'views_unittests', |
- 'webkit_unit_tests', |
- ], |
- # tests=linux_tests would be nice, but they fail so badly and take so |
- # long that the bot becomes useless. |
- # TODO(petermayo): Make these test suites work repeatably or remove |
- # specific inappropriate individual tests. |
- tests=['webkit_unit', |
- 'sizes', ] + |
- ['check_deps', |
- 'googleurl', |
- 'media', |
- 'printing', |
- 'remoting', |
- #'ui', |
- #'browser_tests', |
- 'unit', |
- 'gpu', |
- 'base', |
- #'net', |
- 'safe_browsing', |
- 'crypto', |
- 'cacheinvalidation', |
- 'jingle', |
- 'views'], |
- # These are tested on other trybots, but not on the main page bot. |
- # [ 'webkit_unit', 'media', 'cacheinvalidation', 'jingle'], |
- extra_gyp_defines='touchui=1', |
- builder_name='linux_touch') |
- |
-b_win_shared = CreateBuilder( |
- platform='win32', |
- target='Debug', |
- tests=[], |
- builder_name='win_shared', |
- extra_gyp_defines='component=shared_library') |
- |
-b_linux_shared = CreateBuilder( |
- platform='linux', |
- target='Debug', |
- tests=[], |
- builder_name='linux_shared', |
- extra_gyp_defines='component=shared_library') |
- |
-b_win_aura = CreateBuilder( |
- platform='win32', |
- target='Debug', |
- builder_name='win_aura', |
- tests=['views', 'compositor', 'aura', 'aura_shell'], |
- extra_gyp_defines='use_aura=1') |
- |
-b_linux_aura = CreateBuilder( |
- platform='linux', |
- target='Debug', |
- builder_name='linux_aura', |
- tests=['views', 'compositor', 'aura', 'aura_shell'], |
- options=['aura_builder'], |
- extra_gyp_defines='use_aura=1') |
- |
-b_linux_asan = { |
- 'name': 'linux_asan', |
- 'factory': m_chromium_linux.ChromiumASANFactory( |
- slave_type='BuilderTester', |
- options=[ |
- '--compiler=asan', |
- 'base_unittests', |
- 'browser_tests', |
- 'cacheinvalidation_unittests', |
- 'content_unittests', |
- 'crypto_unittests', |
- 'gfx_unittests', |
- 'googleurl_unittests', |
- 'gpu_unittests', |
- 'ipc_tests', |
- 'jingle_unittests', |
- 'media_unittests', |
- 'net_unittests', |
- 'printing_unittests', |
- 'remoting_unittests', |
- 'safe_browsing_tests', |
- 'sql_unittests', |
- 'sync_unit_tests', |
- 'ui_tests', |
- 'unit_tests', |
- ], |
- tests=[ |
- 'base', |
- 'browser_tests' |
- 'cacheinvalidation', |
- 'crypto', |
- 'googleurl', |
- 'gpu', |
- 'jingle', |
- 'media', |
- 'net', |
- 'printing', |
- 'remoting', |
- 'safe_browsing', |
- 'ui', |
- 'unit', |
- ], |
- factory_properties={ |
- 'asan': True, # Use by runtest.py. |
- 'gclient_env': { |
- 'GYP_DEFINES': 'clang=1 linux_use_tcmalloc=0 disable_nacl=1 ', |
- } |
- }), |
-} |
- |
-b_cros_pfq_x86 = CreateCrosBuilder( |
- 'cros_x86', |
- '--lkgm x86-generic-tot-chrome-pfq-informational', |
- short_name='x86', |
-) |
- |
-b_cros_pfq_arm = CreateCrosBuilder( |
- 'cros_arm', |
- '--lkgm arm-generic-tot-chrome-pfq-informational', |
- short_name='arm', |
-) |
- |
-b_cros_pfq_tegra2 = CreateCrosBuilder( |
- 'cros_tegra2', |
- '--lkgm arm-tegra2-tot-chrome-pfq-informational', |
- short_name='tegra2', |
-) |
- |
-# For now we will assume a fixed toolchain location on the builders. |
-crosstool_prefix = ( |
- '/usr/local/crosstool-trusted/arm-crosstool/bin/arm-none-linux-gnueabi') |
-# Factory properties to use for an arm build. |
-arm_gclient_env = { |
- 'AR': crosstool_prefix + '-ar', |
- 'AS': crosstool_prefix + '-as', |
- 'CC': crosstool_prefix + '-gcc', |
- 'CXX': crosstool_prefix + '-g++', |
- 'LD': crosstool_prefix + '-ld', |
- 'RANLIB': crosstool_prefix + '-ranlib', |
- 'GYP_GENERATORS': 'make', |
- 'GYP_DEFINES': ( |
- 'target_arch=arm ' |
- 'sysroot=/usr/local/arm-rootfs ' |
- 'disable_nacl=1 ' |
- 'linux_use_tcmalloc=0 ' |
- 'armv7=1 ' |
- 'arm_thumb=1 ' |
- 'arm_neon=0 ' |
- 'arm_fpu=vfpv3-d16 ' |
- 'chromeos=1 ' # Since this is the intersting variation. |
- ), |
-} |
- |
-b_linux_chromeos_arm = { |
- 'name': 'linux_chromeos_arm', |
- 'factory': m_chromium_chromiumos.ChromiumOSFactory( |
- target='Release', |
- options=['--build-tool=make', |
- '--crosstool=' + crosstool_prefix, |
- 'chromeos_builder'], |
- tests=[], |
- factory_properties={'gclient_env': arm_gclient_env}), |
-} |
- |
-c['builders'] = [ |
- b_linux_rel, b_mac_rel, b_win_rel, |
- b_linux_clang, |
- b_linux, b_mac, b_win, |
- b_view_linux, b_chromium_chromiumos, |
- b_valgrind_linux, b_valgrind_mac, |
- b_chromium_chromiumos_valgrind, b_tsan_linux, |
- b_linux_layout, b_mac_layout, b_win_layout, |
- b_linux_layout_rel, b_mac_layout_rel, b_win_layout_rel, |
- b_coverage_linux, |
- b_linux_sync, b_mac_sync, b_win_sync, |
- b_mac_clang_no_goma, |
- b_linux_chromeos_clang, |
- b_linux_touch, |
- b_win_shared, |
- b_linux_shared, |
- b_win_aura, b_linux_aura, |
- b_linux_asan, |
- b_linux_chromeos_arm, |
- b_cros_pfq_x86, b_cros_pfq_arm, b_cros_pfq_tegra2, |
-] |
- |
- |
-# Slaves are loaded from slaves.cfg. |
-slaves = slaves_list.SlavesList('slaves.cfg', 'TryServer') |
- |
-# Associate the slaves to the builders. The configuration is in slaves.cfg. |
+# Associate the slaves to the builders. |
for builder in c['builders']: |
builder['slavenames'] = slaves.GetSlavesName(builder=builder['name']) |
+ print "%s -> %s" % (builder['name'], builder['slavenames']) |
# Don't enable auto_reboot for people testing locally. |
- builder['auto_reboot'] = ActiveMaster.is_production_host |
+ print "is_production_host=%s" % ActiveMaster.is_production_host |
+ builder.setdefault('auto_reboot', ActiveMaster.is_production_host) |
- |
-####### BUILDSLAVES |
- |
# The 'slaves' list defines the set of allowable buildslaves. List all the |
# slaves registered to a builder. Remove dupes. |
c['slaves'] = master_utils.AutoSetupSlaves(c['builders'], |
config.Master.GetBotPassword()) |
-# Make sure everything works together. |
-master_utils.VerifySetup(c, slaves) |
- |
- |
####### SCHEDULERS |
-# Configure the Schedulers; |
-# Main Tryscheduler for the try queue. groups is defined in the loop above. |
c['schedulers'] = [] |
-last_good_urls = {'chrome': ActiveMaster.last_good_url} |
-code_review_sites = {'chrome': ActiveMaster.code_review_site} |
+c['schedulers'].append(CrOSTryJobGit( |
+ name='cros_try_job_git', |
+ pools=pools, |
+ repo_url=ActiveMaster.repo_url |
+ )) |
-c['schedulers'].append(TryJobHTTP( |
- name='try_job_http', |
- port=ActiveMaster.try_job_port, |
- last_good_urls=last_good_urls, |
- code_review_sites=code_review_sites, |
- pools=pools)) |
- |
-if LISTEN_TO_SVN: |
- c['schedulers'].append(TryJobSubversion( |
- name='try_job_svn', |
- svn_url=ActiveMaster.svn_url, |
- last_good_urls=last_good_urls, |
- code_review_sites=code_review_sites, |
- pools=pools)) |
- |
- |
####### STATUS TARGETS |
# Adds common status and tools to this master. |
-# Use our own mail notifier. |
-master_utils.AutoSetupMaster(c, ActiveMaster, False) |
+master_utils.AutoSetupMaster(c, ActiveMaster, order_console_by_time=True) |
-if STATUS_PUSH: |
- from master.status_push import HttpStatusPush |
- c['status'].append(HttpStatusPush( |
- 'http://craebuild.appspot.com/status-listener')) |
+# Add a dumb MailNotifier first so it will be used for BuildSlave with |
+# notify_on_missing set when they go missing. |
+from buildbot.status import mail |
+c['status'].append(mail.MailNotifier( |
+ fromaddr=ActiveMaster.from_address, |
+ builders=[], |
+ relayhost=config.Master.smtp, |
+ lookup=master_utils.UsersAreEmails())) |
-if MAIL_NOTIFIER: |
- # Add a dumb MailNotifier first so it will be used for BuildSlave with |
- # notify_on_missing set when they go missing. |
- from buildbot.status import mail |
- c['status'].append(mail.MailNotifier( |
- fromaddr=ActiveMaster.from_address, |
- builders=[], |
- relayhost=config.Master.smtp, |
- lookup=master_utils.UsersAreEmails())) |
+# Try job result emails. |
+from master.try_mail_notifier import TryMailNotifier |
+c['status'].append(TryMailNotifier( |
+ fromaddr=ActiveMaster.from_address, |
+ subject="try %(result)s for %(reason)s on %(builder)s", |
+ mode='all', |
+ relayhost=config.Master.smtp, |
+ lookup=master_utils.UsersAreEmails())) |
- # Try job result emails. |
- from master.try_mail_notifier import TryMailNotifier |
- c['status'].append(TryMailNotifier( |
- fromaddr=ActiveMaster.from_address, |
- subject="try %(result)s for %(reason)s on %(builder)s @ r%(revision)s", |
- mode='all', |
- relayhost=config.Master.smtp, |
- lookup=master_utils.UsersAreEmails())) |
-if UPDATE_CODEREVIEW: |
- c['status'].append(try_job_status_update.TryJobStatusUpdate(None)) |
- |
- |
-# Keep last try jobs, the default is too low. Must keep at least a few days |
-# worth of try jobs. |
-c['buildHorizon'] = 3000 |
-c['logHorizon'] = 3000 |
-# Must be at least 2x the number of slaves. |
-c['eventHorizon'] = 200 |
-# Must be at least 2x the number of on-going builds. |
-c['buildCacheSize'] = 200 |
-c['logCompressionLimit'] = False |
- |
- |
-# Hack buildbot so the Stop build button doesn't work anymore. Otherwise it's |
-# just a pain, user misuse this button all the time. |
-def hack_stop(function): |
- def hook(*args, **kwargs): |
- result = function(*args, **kwargs) |
- result = result.replace('<input type="submit" value="Stop', |
- '<input type="button" onclick="alert(\'' |
- 'For more information, visit ' |
- 'http://dev.chromium.org/developers/try-server-usage' |
- '\');"' |
- ' value="Stop') |
- return result |
- return hook |
- |
-# Only do the hack_stop if we are the production master. This allows |
-# us to keep the STOP button live for local/test instances. |
-if ActiveMaster.is_production_host: |
- from buildbot.status.web.builder import StatusResourceBuilder |
- StatusResourceBuilder.build_line = hack_stop(StatusResourceBuilder.build_line) |
- from buildbot.status.web import base |
- base.make_stop_form = hack_stop(base.make_stop_form) |
- |
- |
####### PROJECT IDENTITY |
-# The 'projectURL' string will be used to provide a link |
-# from buildbot HTML pages to your project's home page. |
-c['projectURL'] = 'http://dev.chromium.org/developers/testing/try-server-usage' |
- |
# Buildbot master url: |
-c['buildbotURL'] = 'http://build.chromium.org/p/tryserver.chromium/' |
- |
-# vi: set ts=4 sts=2 sw=2 et: |
+c['buildbotURL'] = '' |