blob: da1561b36aa34528b5fbacf70416cbaa14462b81 [file] [log] [blame]
# Copyright 2014 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.
# These modules come from scripts/master, which must be in the PYTHONPATH.
from master import master_utils
from master import slaves_list
from master.factory import annotator_factory
from buildbot.schedulers.basic import SingleBranchScheduler
from buildbot.status.mail import MailNotifier
import config
import master_site_config
ActiveMaster = master_site_config.Mojo
m_annotator = annotator_factory.AnnotatorFactory()
c = BuildmasterConfig = {}
c['change_source'] = []
c['schedulers'] = []
c['builders'] = []
c['status'] = []
builders = ['Mojo Linux',
'Mojo Linux (dbg)',
'Mojo Linux ASan',
'Mojo Linux ASan (dbg)',
'Mojo Android Builder',
'Mojo Android Official Builder',
'Mojo Android Builder (dbg)',
'Mojo Android Builder Tests (dbg)',
'Mojo Linux Perf']
for builder_name in builders:
c['builders'].append({
'name': builder_name,
'factory': m_annotator.BaseFactory('mojo'),
'slavebuilddir': 'mojo',
})
config.DatabaseSetup(c)
import master_source_cfg
master_source_cfg.Update(config, ActiveMaster, c)
c['schedulers'].extend([
SingleBranchScheduler(name='source',
branch='master',
treeStableTimer=60,
builderNames=builders)
])
c['logCompressionLimit'] = False
c['projectName'] = ActiveMaster.project_name
c['projectURL'] = config.Master.project_url
# Must come before AutoSetupMaster().
c['buildbotURL'] = ActiveMaster.buildbot_url
# Associate the slaves to the manual builders. The configuration is in
# slaves.cfg.
slaves = slaves_list.SlavesList('slaves.cfg', 'Mojo')
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)
# Adds common status and tools to this master.
master_utils.AutoSetupMaster(c, ActiveMaster,
public_html='../master.chromium/public_html',
templates=['../master.chromium/templates'],
tagComparator=getattr(c['change_source'][0], 'comparator', None),
enable_http_status_push=ActiveMaster.is_production_host)
c['status'].append(MailNotifier(fromaddr=ActiveMaster.from_address,
mode='problem',
relayhost=config.Master.smtp))
# Do it at the end to override values set by AutoSetupMaster, the default is
# too low. Must keep at least a few days worth of builds.
c['buildHorizon'] = 3000
c['logHorizon'] = 3000
# Must be at least 2x the number of slaves.
c['eventHorizon'] = 200