Chromium Code Reviews| Index: masters/master.chromium.chromiumos/master.cfg |
| =================================================================== |
| --- masters/master.chromium.chromiumos/master.cfg (revision 0) |
| +++ masters/master.chromium.chromiumos/master.cfg (revision 0) |
| @@ -0,0 +1,253 @@ |
| +# 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. |
| + |
| +from buildbot.changes import svnpoller |
| +#For buildbot 8, switch in this line |
| +#from buildbot.schedulers.basic import SingleBranchScheduler |
| +from buildbot.scheduler import Scheduler as SingleBranchScheduler |
| + |
| +# These modules come from scripts/master, which must be in the PYTHONPATH. |
| +from master import build_utils |
| +from master import chromium_notifier |
| +from master import master_config |
| +from master import master_utils |
| +from master import slaves_list |
| + |
| +from master.factory import chromeos_factory |
| +from master.factory import chromium_factory |
| + |
| +# These modules come from scripts/common, which must be in the PYTHONPATH. |
| +import config |
| + |
| +ActiveMaster = config.Master.ChromiumChromiumOS |
| + |
| +CODESEARCH_NOTIFIER = True |
| +STATUS_PUSH = False |
| + |
| +# These are the common targets to most of the builders |
| +# This is repeated in other linux master configs. |
| +linux_all_test_targets = [ |
| + 'base_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 |
| + 'content_unittests', # from test target unit |
| + 'unit_tests', # from test target unit |
| + 'gfx_unittests', # from test target unit |
| + 'browser_tests', |
| + 'ui_tests', |
| +] |
| + |
| +# This is the dictionary that the buildmaster pays attention to. We also use |
| +# a shorter alias to save typing. |
| +c = BuildmasterConfig = {} |
| + |
| + |
| +####### CHANGESOURCES |
| + |
| +# the 'change_source' list tells the buildmaster how it should find out about |
| +# source code changes. Any class which implements IChangeSource can be added |
| +# to this list: there are several in buildbot/changes/*.py to choose from. |
| +def ChromeTreeFileSplitter(path): |
| + """split_file for the 'src' project in the trunk.""" |
| + |
| + # Exclude .DEPS.git from triggering builds on chrome. |
| + if path == 'src/.DEPS.git': |
| + return None |
| + |
| + # List of projects we are interested in. The project names must exactly |
| + # match paths in the Subversion repository, relative to the 'path' URL |
| + # argument. build_utils.SplitPath() will use them as branch names to |
| + # kick off the Schedulers for different projects. |
| + projects = ['src'] |
| + return build_utils.SplitPath(projects, path) |
| + |
| +# Rev link urls. |
| +chromium_rev = 'http://src.chromium.org/viewvc/chrome?view=rev&revision=%s' |
| + |
| +# Polls config.Master.trunk_url for changes |
| +trunk_poller = svnpoller.SVNPoller(svnurl=config.Master.trunk_url, |
| + split_file=ChromeTreeFileSplitter, |
| + pollinterval=10, |
| + revlinktmpl=chromium_rev) |
| + |
| +# TODO(petermayo) Make this sensitive to LKGM changes too, crosbug.com/20798 |
| + |
| +c['change_source'] = [trunk_poller] |
| + |
| + |
| +####### SCHEDULERS |
| + |
| +## configure the Schedulers |
| + |
| +# Main scheduler for all changes in trunk. |
| +s_chromium = SingleBranchScheduler( |
| + name='chromium', |
| + branch='src', |
| + treeStableTimer=60, |
| + builderNames=[ |
| + 'Linux ChromeOS', |
| + 'ChromiumOS (x86)', |
| + 'ChromiumOS (arm)', |
| + 'ChromiumOS (tegra2)']) |
| + |
| +c['schedulers'] = [s_chromium] |
| + |
| +####### BUILDERS |
| + |
| +# buildbot/process/factory.py provides several BuildFactory classes you can |
| +# start with, which implement build processes for common targets (GNU |
| +# autoconf projects, CPAN perl modules, etc). The factory.BuildFactory is the |
| +# base class, and is configured with a series of BuildSteps. When the build |
| +# is run, the appropriate buildslave is told to execute each Step in turn. |
| + |
| +# the first BuildStep is typically responsible for obtaining a copy of the |
| +# sources. There are source-obtaining Steps in buildbot/process/step.py for |
| +# CVS, SVN, and others. |
| + |
| +builders = [] |
| + |
| +# ---------------------------------------------------------------------------- |
| +# FACTORIES |
| + |
| + |
| +f_chromium_linux_chromeos = chromium_factory.ChromiumFactory( |
| + 'src/build', 'linux2').ChromiumOSFactory( |
| + tests=['unit', |
| + 'base', |
| + 'net', |
| + 'googleurl', |
| + 'media', |
| + 'ui', |
| + 'printing', |
| + 'remoting', |
| + 'browser_tests', |
| + 'interactive_ui', |
| + 'views', |
| + 'crypto', |
| + 'cacheinvalidation', |
| + 'jingle'], |
| + options=['--compiler=goma'] + linux_all_test_targets + ['chromeos_builder'], |
| + factory_properties={ |
| + 'archive_build': True, |
| + 'extra_archive_paths': 'chrome/tools/build/chromeos', |
| + 'gclient_env': { 'GYP_DEFINES':'chromeos=1 target_arch=ia32'}, |
| + 'generate_gtest_json': True}) |
| + |
| +f_chromium_tot_chromeos_x86_generic = chromeos_factory.ChromeCbuildbotFactory( |
| + buildroot='/b/cbuild.x86', |
| + crostools_repo=None, |
| + pass_revision=True, |
| + params='x86-generic-tot-chrome-pfq-informational --debug').get_factory() |
| + |
| +f_chromium_tot_chromeos_arm_generic = chromeos_factory.ChromeCbuildbotFactory( |
| + buildroot='/b/cbuild.arm', |
| + crostools_repo=None, |
| + pass_revision=True, |
| + params='arm-generic-tot-chrome-pfq-informational --debug').get_factory() |
| + |
| +f_chromium_tot_chromeos_tegra2 = chromeos_factory.ChromeCbuildbotFactory( |
| + buildroot='/b/cbuild.tegra2', |
| + crostools_repo=None, |
| + pass_revision=True, |
| + params='arm-tegra2-tot-chrome-pfq-informational --debug').get_factory() |
| + |
| + |
| + |
| +# ---------------------------------------------------------------------------- |
| +# BUILDER DEFINITIONS |
| + |
| +# 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 (optional): which subdirectory to run the builder in |
| +# factory (required): a BuildFactory to define how the build is run |
| +# periodicBuildTime (optional): if set, force a build every N seconds |
| +# 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. |
| +# |
| + |
| +b_chromium_rel_linux_touch = { |
| + 'name': 'Linux ChromeOS', |
| + 'builddir': 'chromium-rel-linux-chromeos', |
| + 'factory': f_chromium_linux_chromeos, |
| + 'category': 'linux', |
| +} |
| + |
| +b_chromium_tot_chromeos_x86_generic = { |
| + 'name': 'ChromiumOS (x86)', |
| + 'builddir': 'chromium-tot-chromeos-x86-generic', |
| + 'factory': f_chromium_tot_chromeos_x86_generic, |
| + 'category': 'chromiumos', |
| +} |
| + |
| +b_chromium_tot_chromeos_arm_generic = { |
| + 'name': 'ChromiumOS (arm)', |
| + 'builddir': 'chromium-tot-chromeos-arm-generic', |
| + 'factory': f_chromium_tot_chromeos_arm_generic, |
| + 'category': 'chromiumos', |
| +} |
| + |
| +b_chromium_tot_chromeos_tegra2 = { |
| + 'name': 'ChromiumOS (tegra2)', |
| + 'builddir': 'chromium-tot-chromeos-tegra2', |
| + 'factory': f_chromium_tot_chromeos_tegra2, |
| + 'category': 'chromiumos', |
| +} |
| + |
| +c['builders'] = [ |
| + b_chromium_rel_linux_touch, |
| + b_chromium_tot_chromeos_x86_generic, |
| + b_chromium_tot_chromeos_arm_generic, |
| + b_chromium_tot_chromeos_tegra2, |
| +] |
| + |
| +# Associate the slaves to the manual builders. The configuration is in |
| +# slaves.cfg. |
| +slaves = slaves_list.SlavesList('slaves.cfg', ActiveMaster.project_name) |
| +for builder in c['builders']: |
| + builder['slavenames'] = slaves.GetSlavesName(builder=builder['name']) |
| + |
| + |
| +####### 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) |
| + |
| + |
| +####### STATUS TARGETS |
| + |
| +# Adds common status and tools to this master. |
| +master_utils.AutoSetupMaster(c, ActiveMaster, |
| + public_html="../master.chromium/public_html", |
| + enable_http_status_push=ActiveMaster.is_production_host) |
| + |
| +# Add more. |
| + |
| +if STATUS_PUSH: |
| + from master.status_push import HttpStatusPush |
| + c['status'].append(HttpStatusPush( |
| + 'http://craebuild.appspot.com/status-listener')) |
|
cmp
2011/09/27 00:59:06
remove lines 242-248
Peter Mayo
2011/09/27 01:03:28
How about lines 243-249 in stead?
[Done]
|
| + |
| +####### PROJECT IDENTITY |
| + |
| +# Buildbot master url: |
| +c['buildbotURL'] = 'http://build.chromium.org/p/chromium.chromiumos/' |