| 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,150 @@
|
| # -*- 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
|
| +# 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)
|
|
|
| -# These modules come from scripts, which must be in the PYTHONPATH.
|
| 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
|
|
|
| -
|
| -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
|
| +c['builders'] = []
|
| +pools = CrOSBuildersPools(default_pool_name='ChromeOS',
|
| + builder_mapping=cros_builder_mapping.CONFIG_NAME_DICT)
|
|
|
| -m_chromium_win = chromium_factory.ChromiumFactory(
|
| - 'src/build',
|
| - target_platform='win32')
|
| +# ----------------------------------------------------------------------------
|
| +# BUILDER DEFINITIONS
|
|
|
| -m_chromium_win_webkit = chromium_factory.ChromiumFactory(
|
| - 'src/build',
|
| - target_platform='win32')
|
| +# 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_linux = chromium_factory.ChromiumFactory(
|
| - 'src/build',
|
| - target_platform='linux2')
|
| +# Cros helper functions to build builders and factories.
|
|
|
| -m_chromium_mac = chromium_factory.ChromiumFactory(
|
| - 'src/build',
|
| - target_platform='darwin')
|
| +def GetCBuildbotFactory(config):
|
| + """Returns cros buildbot factories."""
|
| + return chromeos_factory.CbuildbotFactory(
|
| + params=config, trybot=True, crostools_repo=None).get_factory()
|
|
|
| -# Chromium for ChromiumOS
|
| -m_chromium_chromiumos = chromium_factory.ChromiumFactory(
|
| - 'src/build',
|
| - target_platform='linux2')
|
|
|
| +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)
|
|
|
| + c['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'
|
|
|
| - # 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=[],
|
| - )
|
| +# Pre Flight Queues
|
| +AddBuilderDefinition('x86 generic PFQ')
|
| +AddBuilderDefinition('arm generic PFQ')
|
| +AddBuilderDefinition('tegra2 PFQ')
|
|
|
| - # 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()
|
| +# Full Builders
|
| +AddBuilderDefinition('x86 generic full')
|
| +AddBuilderDefinition('arm generic full')
|
| +AddBuilderDefinition('tegra2 full')
|
| +AddBuilderDefinition('tegra2 seaboard full')
|
| +AddBuilderDefinition('x86 pineview full')
|
|
|
| - builder_info = {
|
| - 'name': builder_name,
|
| - 'factory': builder_factory,
|
| - }
|
| - if slavebuilddir:
|
| - builder_info['slavebuilddir'] = slavebuilddir
|
| - return builder_info
|
| +AddBuilderDefinition('chromiumos sdk',)
|
|
|
| -# Try queues.
|
| -pools = BuildersPools('chrome')
|
| +####### BUILDSLAVES
|
|
|
| +# 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.
|
|
|
| -# 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']
|
| +# First, load the list from slaves.cfg.
|
| +slaves = slaves_list.SlavesList('slaves.cfg', 'ChromiumOSTryServer')
|
|
|
| -# 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')
|
| -
|
| -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'])
|
| # Don't enable auto_reboot for people testing locally.
|
| - builder['auto_reboot'] = 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'] = ''
|
|
|