| Index: build/masters/master.chromium.perf_av/master.cfg | 
| =================================================================== | 
| --- build/masters/master.chromium.perf_av/master.cfg	(revision 240935) | 
| +++ build/masters/master.chromium.perf_av/master.cfg	(working copy) | 
| @@ -1,289 +0,0 @@ | 
| -# -*- python -*- | 
| -# ex: set syntax=python: | 
| - | 
| -# Copyright (c) 2012 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. | 
| - | 
| -# This is the buildmaster config file for the 'chromium' bot. It must | 
| -# be installed as 'master.cfg' in your buildmaster's base directory | 
| -# (although the filename can be changed with the --basedir option to | 
| -# 'mktap buildbot master'). | 
| - | 
| -# It has one job: define a dictionary named BuildmasterConfig. This | 
| -# dictionary has a variety of keys to control different aspects of the | 
| -# buildmaster. They are documented in docs/config.xhtml . | 
| - | 
| -# This file follows this naming convention: | 
| -# Factories: f_cr_[dbg/rel]_[type] | 
| -# Builders:  b_chromium_[dbg/rel]_[os]_[type] | 
| -# BuildDir:  chromium-[dbg/rel]-[os]-[type] | 
| -# | 
| -# os = xp/vista/linux/mac | 
| -# type = perf | 
| - | 
| -from buildbot.changes import svnpoller | 
| -from buildbot.scheduler import Scheduler | 
| -from buildbot.scheduler import Triggerable | 
| - | 
| -from common import chromium_utils | 
| - | 
| -from master import build_utils | 
| -from master import master_config | 
| -from master import master_utils | 
| -from master import perf_count_notifier | 
| -from master import slaves_list | 
| -from master.factory import chromium_factory | 
| - | 
| -import config | 
| -import master_site_config | 
| - | 
| -ActiveMaster = master_site_config.ChromiumPerfAv | 
| - | 
| -# Enable PERF_NOTIFIER in production to send cmp@google.com perf alerts. | 
| -PERF_NOTIFIER = ActiveMaster.is_production_host | 
| - | 
| -# This is the dictionary that the buildmaster pays attention to. We also use | 
| -# a shorter alias to save typing. | 
| -c = BuildmasterConfig = {} | 
| - | 
| -# 'slavePortnum' defines the TCP port to listen on. This must match the value | 
| -# configured into the buildslaves (with their --master option) | 
| -c['slavePortnum'] = ActiveMaster.slave_port | 
| - | 
| -# Disable compression for the stdio files. | 
| -c['logCompressionLimit'] = False | 
| - | 
| -# Load the list of slaves. | 
| -slaves = slaves_list.SlavesList('slaves.cfg', 'ChromiumPerfAv') | 
| - | 
| -config.DatabaseSetup(c, require_dbconfig=ActiveMaster.is_production_host) | 
| - | 
| -####### 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) | 
| - | 
| -# Polls config.Master.trunk_url for changes | 
| -chromium_rev = 'http://src.chromium.org/viewvc/chrome?view=rev&revision=%s' | 
| -trunk_poller = svnpoller.SVNPoller(svnurl=config.Master.trunk_url, | 
| -                                   svnbin=chromium_utils.SVN_BIN, | 
| -                                   split_file=ChromeTreeFileSplitter, | 
| -                                   pollinterval=10, | 
| -                                   revlinktmpl=chromium_rev) | 
| - | 
| -c['change_source'] = [trunk_poller] | 
| - | 
| - | 
| -####### SCHEDULERS | 
| - | 
| -## configure the Schedulers | 
| - | 
| -# Scheduler to trigger slaves that depend on the linux release build. | 
| -s_chromium_linux_rel_builder = Scheduler(name='chromium_linux_rel_builder', | 
| -                                         branch='src', | 
| -                                         treeStableTimer=60, | 
| -                                         builderNames=['AV Linux Builder', | 
| -                                                       'AV Win7']) | 
| - | 
| -s_chromium_linux_rel_trigger = Triggerable('linuxrel', | 
| -                                           ['AV Linux', | 
| -                                           ]) | 
| - | 
| -c['schedulers'] = [s_chromium_linux_rel_builder, | 
| -                   s_chromium_linux_rel_trigger] | 
| - | 
| -####### 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 | 
| - | 
| -m_linux = chromium_factory.ChromiumFactory('src/out', 'linux2') | 
| -m_win = chromium_factory.ChromiumFactory('src/build', 'win32') | 
| - | 
| -# Some shortcut to simplify the code below. | 
| -F_LINUX = m_linux.ChromiumAVPerfFactory | 
| -F_WIN = m_win.ChromiumAVPerfFactory | 
| - | 
| -chromium_rel_linux_archive = master_config.GetArchiveUrl('ChromiumPerfAv', | 
| -    'AV Linux Builder', | 
| -    'chromium-rel-linux-builder', | 
| -    'linux') | 
| - | 
| -# The identifier of the factory is the build configuration. If two factories | 
| -# are using the same build configuration, they should have the same identifier. | 
| - | 
| -# GYP DEFINES used to enable codecs available in chrome. | 
| -FFMPEG_GYP_DEFINES_LINUX = ( | 
| -  'ffmpeg_branding=ChromeOS ' | 
| -  'proprietary_codecs=1 ' | 
| -  'python_ver=2.7 ' | 
| -) | 
| - | 
| -FFMPEG_GYP_DEFINES_WIN = ( | 
| -  'ffmpeg_branding=Chrome ' | 
| -  'proprietary_codecs=1 ' | 
| -  'fastbuild=1 ' | 
| -  'component=shared_library ' | 
| -) | 
| - | 
| -perf_av_tests = ['avperf'] | 
| - | 
| -f_cr_rel_linux_builder = F_LINUX(target='Release', | 
| -                                 slave_type='Builder', | 
| -                                 options=['--', 'chromium_builder_perf_av'], | 
| -                                 factory_properties={ | 
| -                                   'gclient_env': { | 
| -                                      'GYP_DEFINES': FFMPEG_GYP_DEFINES_LINUX}, | 
| -                                   'trigger': 'linuxrel'}) | 
| - | 
| -f_cr_rel_linux = F_LINUX(slave_type='Tester', | 
| -                         build_url=chromium_rel_linux_archive, | 
| -                         tests=perf_av_tests, | 
| -                         factory_properties={ | 
| -                             'show_perf_results': True, | 
| -                             'expectations': True, | 
| -                             'halt_on_missing_build': True, | 
| -                             'perf_id': 'linux-release', | 
| -                             'pyauto_env': { | 
| -                                 'DO_NOT_RESTART_PYTHON_FOR_PYAUTO': '1' | 
| -                             }, | 
| -                         }) | 
| - | 
| -f_win7_rel = F_WIN(slave_type='BuilderTester', | 
| -                   project='all.sln;chromium_builder_perf_av', | 
| -                   target='Release', | 
| -                   tests=perf_av_tests, | 
| -                   factory_properties={ | 
| -                     'gclient_env': {'GYP_DEFINES': FFMPEG_GYP_DEFINES_WIN}, | 
| -                     'show_perf_results': True, | 
| -                     'expectations': True, | 
| -                     'perf_id': 'win-release'}) | 
| - | 
| -# ---------------------------------------------------------------------------- | 
| -# 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 | 
| -#  builddir (required): 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_builder = {'name': 'AV Linux Builder', | 
| -  'builddir': 'chromium-rel-linux-builder', | 
| -  'factory': f_cr_rel_linux_builder, | 
| -  'category': '1linux|builders_compile|builder_testers', | 
| -  'auto_reboot': False, | 
| -} | 
| - | 
| -b_chromium_rel_linux = {'name': 'AV Linux', | 
| -  'builddir': 'chromium-rel-linux', | 
| -  'factory': f_cr_rel_linux, | 
| -  'category': '1linux|builders_compile|builder_testers', | 
| -} | 
| - | 
| -b_chromium_rel_win = {'name': 'AV Win7', | 
| -  'factory': f_win7_rel, | 
| -  'category': 'windows', | 
| -} | 
| - | 
| -c['builders'] = [ | 
| -  b_chromium_rel_linux_builder, | 
| -  b_chromium_rel_linux, | 
| -  b_chromium_rel_win, | 
| -] | 
| - | 
| - | 
| -####### BUILDSLAVES | 
| - | 
| -# Associate the slaves to the manual builders. The configuration is in | 
| -# slaves.cfg. | 
| -for builder in c['builders']: | 
| -  builder['slavenames'] = slaves.GetSlavesName(builder=builder['name']) | 
| - | 
| -# 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()) | 
| -master_utils.VerifySetup(c, slaves) | 
| - | 
| - | 
| -####### STATUS TARGETS | 
| - | 
| -# The 'buildbotURL' string should point to the location where the buildbot's | 
| -# internal web server (usually the html.Waterfall page) is visible. This | 
| -# typically uses the port number set in the Waterfall 'status' entry, but | 
| -# with an externally-visible host name which the buildbot cannot figure out | 
| -# without some help. | 
| - | 
| -# Must come before AutoSetupMaster(). | 
| -c['buildbotURL'] = 'http://build.chromium.org/p/chromium.perf_av/' | 
| - | 
| -# Adds common status and tools to this master. | 
| -master_utils.AutoSetupMaster(c, ActiveMaster, | 
| -    public_html="../master.chromium/public_html", | 
| -    templates=['../master.chromium/templates'], | 
| -    enable_http_status_push=ActiveMaster.is_production_host) | 
| - | 
| -# Add more. | 
| - | 
| -if PERF_NOTIFIER: | 
| -  # Builder exclusions | 
| -  c['status'].append(perf_count_notifier.PerfCountNotifier( | 
| -      fromaddr=ActiveMaster.from_address, | 
| -      relayhost=config.Master.smtp, | 
| -      status_header='Perf results on "%(builder)s":\n', | 
| -      subject='Buildbot %(result)s in %(projectName)s on %(builder)s, ' | 
| -              'revision %(revision)s', | 
| -      extraRecipients=['videostack-eng@google.com'], | 
| -      lookup=master_utils.FilterDomain(), | 
| -      use_getname=True, | 
| -      # Perf steps to look for perf results.  Other steps will be ignored. | 
| -      step_names=['media_tests_av_perf'], | 
| -      # 24 hours delay between emails perf bot result. | 
| -      minimum_delay_between_alert=3600*24, | 
| -      # A least 5 consecutive regressions are needed before notifying. | 
| -      minimum_count=5, | 
| -      # Combine bot results into one email. | 
| -      combine_results=True)) | 
| - | 
| -####### PROJECT IDENTITY | 
| - | 
| -# the 'projectName' string will be used to describe the project that this | 
| -# buildbot is working on. For example, it is used as the title of the | 
| -# waterfall HTML page. The 'projectURL' string will be used to provide a link | 
| -# from buildbot HTML pages to your project's home page. | 
| - | 
| -c['projectName'] = ActiveMaster.project_name | 
| -c['projectURL'] = config.Master.project_url | 
|  |