| Index: masters/master.client.pagespeed/master.cfg
|
| ===================================================================
|
| --- masters/master.client.pagespeed/master.cfg (revision 0)
|
| +++ masters/master.client.pagespeed/master.cfg (revision 0)
|
| @@ -0,0 +1,134 @@
|
| +# Copyright (c) 2010 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
|
| +from buildbot.scheduler import Scheduler
|
| +
|
| +from master import build_utils
|
| +from master import master_utils
|
| +from master import slaves_list
|
| +from master.factory import pagespeed_factory
|
| +
|
| +import config
|
| +
|
| +ActiveMaster = config.Master.PageSpeed
|
| +
|
| +# This is the dictionary that the buildmaster pays attention to. We also use
|
| +# a shorter alias to save typing.
|
| +c = BuildmasterConfig = {}
|
| +
|
| +# Disable compression for the stdio files.
|
| +c['logCompressionLimit'] = False
|
| +
|
| +
|
| +####### POLLERS
|
| +
|
| +def TreeFileSplitter(path):
|
| + # 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)
|
| +
|
| +# Polls the svn server every 10 seconds for new changes.
|
| +pagespeed_rev = 'http://code.google.com/p/page-speed/source/detail?r=%s'
|
| +trunk_poller = svnpoller.SVNPoller(svnurl="http://page-speed.googlecode.com/svn/lib/trunk/",
|
| + split_file=TreeFileSplitter,
|
| + pollinterval=10,
|
| + revlinktmpl=pagespeed_rev)
|
| +
|
| +c['change_source'] = [trunk_poller]
|
| +
|
| +
|
| +####### SCHEDULERS
|
| +
|
| +## configure the Schedulers
|
| +
|
| +# Main scheduler for all changes in trunk/src.
|
| +s_src = Scheduler(name='src',
|
| + branch='src',
|
| + treeStableTimer=60,
|
| + builderNames=['Windows XP',
|
| + 'Windows 7',
|
| + 'Lucid 64',
|
| + 'Lucid 32',
|
| + 'Mac 10.6'])
|
| +
|
| +c['schedulers'] = [s_src]
|
| +
|
| +####### BUILDERS
|
| +
|
| +builders = []
|
| +
|
| +# ----------------------------------------------------------------------------
|
| +# FACTORIES
|
| +
|
| +m_win = pagespeed_factory.PageSpeedFactory('src/build', 'win32')
|
| +m_linux = pagespeed_factory.PageSpeedFactory('src/build', 'linux2')
|
| +m_mac = pagespeed_factory.PageSpeedFactory('src/build', 'darwin')
|
| +
|
| +# Some shortcut to simplify the code below.
|
| +F_WIN = m_win.PageSpeedFactory
|
| +F_LINUX = m_linux.PageSpeedFactory
|
| +F_MAC = m_mac.PageSpeedFactory
|
| +
|
| +f_linux = F_LINUX('pagespeed-rel-linux',
|
| + target='Release',
|
| + options=[],
|
| + tests=[])
|
| +
|
| +f_win = F_WIN('pagespeed-rel-windows',
|
| + project='all.sln',
|
| + target='Release',
|
| + tests=[])
|
| +
|
| +f_mac = F_MAC('pagespeed-rel-mac',
|
| + target='Release',
|
| + options=['--', '-project', 'all.xcodeproj'],
|
| + tests=[])
|
| +
|
| +
|
| +# ----------------------------------------------------------------------------
|
| +# BUILDER DEFINITIONS
|
| +
|
| +b_windows_xp = {'name': 'Windows XP', 'factory': f_win}
|
| +b_windows_7 = {'name': 'Windows 7', 'factory': f_win}
|
| +b_lucid_64 = {'name': 'Lucid 64', 'factory': f_linux}
|
| +b_lucid_32 = {'name': 'Lucid 32', 'factory': f_linux}
|
| +b_mac10_6 = {'name': 'Mac 10.6', 'factory': f_mac}
|
| +
|
| +c['builders'] = [
|
| + b_windows_xp,
|
| + b_windows_7,
|
| + b_lucid_64,
|
| + b_lucid_32,
|
| + b_mac10_6,
|
| +]
|
| +
|
| +# Associate the slaves to the manual builders. The configuration is in
|
| +# slaves.cfg.
|
| +slaves = slaves_list.SlavesList('slaves.cfg', 'PageSpeed')
|
| +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)
|
| +
|
| +####### PROJECT IDENTITY
|
| +
|
| +# Buildbot master url:
|
| +c['buildbotURL'] = 'http://build.chromium.org/p/client.pagespeed'
|
|
|