Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(845)

Unified Diff: masters/master.chromium.chromiumos/master.cfg

Issue 8046027: Add a new master for chromium on chromium OS (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build/
Patch Set: '' Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « masters/master.chromium.chromiumos/buildbot.tac ('k') | masters/master.chromium.chromiumos/slaves.cfg » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,246 @@
+# 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)
+
+####### PROJECT IDENTITY
+
+# Buildbot master url:
+c['buildbotURL'] = 'http://build.chromium.org/p/chromium.chromiumos/'
« no previous file with comments | « masters/master.chromium.chromiumos/buildbot.tac ('k') | masters/master.chromium.chromiumos/slaves.cfg » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698