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/' |