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