blob: 1c75d5cb25d9c2b55e69bb79de9c6c4a83793353 [file] [log] [blame]
# 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.
from buildbot.schedulers.basic import SingleBranchScheduler
from master.factory import annotator_factory
from master.factory import remote_run_factory
import master_site_config
ActiveMaster = master_site_config.WebRTC
def m_remote_run(recipe, **kwargs):
return remote_run_factory.RemoteRunFactory(
active_master=ActiveMaster,
repository='https://chromium.googlesource.com/chromium/tools/build.git',
recipe=recipe,
factory_properties={'path_config': 'kitchen'},
**kwargs)
m_annotator = annotator_factory.AnnotatorFactory()
def Update(c):
c['schedulers'].extend([
SingleBranchScheduler(name='webrtc_linux_scheduler',
branch='master',
treeStableTimer=30,
builderNames=[
'Linux32 Debug',
'Linux32 Release',
'Linux64 Debug',
'Linux64 Release',
'Linux32 Debug (ARM)',
'Linux32 Release (ARM)',
'Linux64 Debug (ARM)',
'Linux64 Release (ARM)',
'Linux64 Release (GCC)',
'Linux Asan',
'Linux MSan',
'Linux Tsan v2',
'Linux UBSan',
'Linux UBSan vptr',
'Linux (more configs)',
'Linux64 Release (Libfuzzer)',
]),
])
# 'slavebuilddir' below is used to reduce the number of checkouts since some
# of the builders are pooled over multiple slave machines.
specs = [
{'name': 'Linux32 Debug (ARM)', 'slavebuilddir': 'linux_arm'},
{'name': 'Linux32 Release (ARM)', 'slavebuilddir': 'linux_arm'},
{'name': 'Linux32 Debug', 'slavebuilddir': 'linux32'},
{'name': 'Linux32 Release', 'slavebuilddir': 'linux32'},
{'name': 'Linux64 Debug', 'slavebuilddir': 'linux64'},
{'name': 'Linux64 Release', 'slavebuilddir': 'linux64'},
{'name': 'Linux64 Debug (ARM)', 'slavebuilddir': 'linux_arm64'},
{'name': 'Linux64 Release (ARM)', 'slavebuilddir': 'linux_arm64'},
{'name': 'Linux64 Release (GCC)', 'slavebuilddir': 'linux_gcc'},
{'name': 'Linux Asan', 'slavebuilddir': 'linux_asan'},
{'name': 'Linux MSan', 'slavebuilddir': 'linux_msan'},
{'name': 'Linux Tsan v2', 'slavebuilddir': 'linux_tsan2'},
{'name': 'Linux UBSan', 'slavebuilddir': 'linux_ubsan'},
{'name': 'Linux UBSan vptr', 'slavebuilddir': 'linux_ubsan_vptr'},
{
'name': 'Linux (more configs)',
'recipe': 'webrtc/more_configs',
'slavebuilddir': 'linux64',
},
{
'name': 'Linux64 Release (Libfuzzer)',
'recipe': 'webrtc/libfuzzer',
'slavebuilddir': 'linux64_libfuzzer',
},
]
c['builders'].extend([
{
'name': spec['name'],
'factory': m_remote_run(spec['recipe']) if 'recipe' in spec
else m_remote_run('webrtc/standalone'),
'notify_on_missing': True,
'category': 'linux',
'slavebuilddir': spec['slavebuilddir'],
} for spec in specs
])