Chromium Code Reviews| 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'] = '' |