Adding Chrome bot to main master.cfg
BUG=None TEST=Running locally Review URL: https://webrtc-codereview.appspot.com/391019 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1759 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
5545f38e41
commit
4cddc66db5
@ -1,9 +0,0 @@
|
||||
solutions = [
|
||||
{ "name" : "internal.DEPS",
|
||||
"url" : "svn://chrome-svn.corp.google.com/chrome-internal/trunk/tools/build/internal.DEPS",
|
||||
"deps_file" : "DEPS",
|
||||
"custom_deps" : {
|
||||
},
|
||||
"safesync_url": "",
|
||||
},
|
||||
]
|
@ -1,166 +0,0 @@
|
||||
# -*- python -*-
|
||||
# ex: set syntax=python:
|
||||
|
||||
# This is a sample buildmaster config file. 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 is the dictionary that the buildmaster pays attention to. We also use
|
||||
# a shorter alias to save typing.
|
||||
c = BuildmasterConfig = {}
|
||||
|
||||
####### BUILDSLAVES
|
||||
|
||||
# the 'slaves' list defines the set of allowable buildslaves. Each element is
|
||||
# a BuildSlave object, which is created with bot-name, bot-password. These
|
||||
# correspond to values given to the buildslave's mktap invocation.
|
||||
|
||||
from buildbot.buildslave import BuildSlave
|
||||
|
||||
c['slaves'] = [BuildSlave("linux-chrome", "pass", max_builds=1)]
|
||||
|
||||
# 'slavePortnum' defines the TCP port to listen on. This must match the value
|
||||
# configured into the buildslaves (with their --master option)
|
||||
|
||||
c['slavePortnum'] = 9989
|
||||
|
||||
####### CHANGESOURCES
|
||||
|
||||
# the 'change_source' setting tells the buildmaster how it should find out
|
||||
# about source code changes. Any class which implements IChangeSource can be
|
||||
# put here: there are several in buildbot/changes/*.py to choose from.
|
||||
|
||||
from buildbot.changes.pb import PBChangeSource
|
||||
from buildbot.changes.svnpoller import SVNPoller
|
||||
|
||||
#c['change_source'] = PBChangeSource()
|
||||
source_code_svn_url='http://webrtc.googlecode.com/svn/trunk'
|
||||
svn_poller = SVNPoller(svnurl=source_code_svn_url, pollinterval=5*60*60,
|
||||
histmax=10, svnbin='/usr/bin/svn',
|
||||
)
|
||||
c['change_source'] = svn_poller
|
||||
#c['sources'] = [ svn_poller ]
|
||||
|
||||
####### SCHEDULERS
|
||||
|
||||
## configure the Schedulers
|
||||
|
||||
from buildbot.scheduler import Scheduler
|
||||
web_rtc_scheduler = Scheduler(name="all", branch=None, treeStableTimer=60*60,
|
||||
builderNames=["ChromeWebRTC"])
|
||||
c['schedulers'] = [web_rtc_scheduler]
|
||||
|
||||
|
||||
####### BUILDERS
|
||||
|
||||
# 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 builder
|
||||
# slavename (required): which slave to use (must appear in c['bots'])
|
||||
# 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
|
||||
|
||||
# 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/steps/source.py for
|
||||
# CVS, SVN, and others.
|
||||
|
||||
from buildbot.process import factory
|
||||
from buildbot.steps import shell
|
||||
from webrtc_buildbot import utils
|
||||
|
||||
linux_factory = utils.WebRTCChromeFactory()
|
||||
linux_factory.EnableBuild()
|
||||
|
||||
|
||||
linux_builder_1 = {
|
||||
'name': "ChromeWebRTC",
|
||||
'slavename': "linux-chrome",
|
||||
'builddir': "linux-chrome",
|
||||
'factory': linux_factory,
|
||||
}
|
||||
|
||||
c['builders'] = [linux_builder_1]
|
||||
|
||||
|
||||
####### STATUS TARGETS
|
||||
|
||||
# 'status' is a list of Status Targets. The results of each build will be
|
||||
# pushed to these targets. buildbot/status/*.py has a variety to choose from,
|
||||
# including web pages, email senders, and IRC bots.
|
||||
|
||||
from buildbot.status import html
|
||||
from buildbot.status import mail
|
||||
|
||||
web_page = html.WebStatus(http_port=8010, allowForce=True)
|
||||
email_notification = mail.MailNotifier(
|
||||
fromaddr="webrtc-cb-watchlist@google.com",
|
||||
extraRecipients=["webrtc-cb-watchlist@google.com"],
|
||||
sendToInterestedUsers=True,
|
||||
mode='failing')
|
||||
c['status'] = [web_page, email_notification]
|
||||
|
||||
# Use allowForce=True (boolean, not a string. ie: not 'True') to allow
|
||||
# Forcing Builds in the Web User Interface. The default is False.
|
||||
# from buildbot.status import html
|
||||
# c['status'].append(html.WebStatus(http_port=8010,allowForce=True))
|
||||
|
||||
# from buildbot.status.web.auth import BasicAuth
|
||||
# users = [('bob', 'secret-pass'), ('jill', 'super-pass')
|
||||
# from buildbot.status import words
|
||||
# c['status'].append(words.IRC(host="irc.example.com", nick="bb",
|
||||
# channels=["#example"]))
|
||||
#
|
||||
# from buildbot.status import client
|
||||
# c['status'].append(client.PBListener(9988))
|
||||
|
||||
|
||||
####### DEBUGGING OPTIONS
|
||||
|
||||
# if you set 'debugPassword', then you can connect to the buildmaster with
|
||||
# the diagnostic tool in contrib/debugclient.py . From this tool, you can
|
||||
# manually force builds and inject changes, which may be useful for testing
|
||||
# your buildmaster without actually committing changes to your repository (or
|
||||
# before you have a functioning 'sources' set up). The debug tool uses the
|
||||
# same port number as the slaves do: 'slavePortnum'.
|
||||
|
||||
#c['debugPassword'] = "debugpassword"
|
||||
|
||||
# if you set 'manhole', you can ssh into the buildmaster and get an
|
||||
# interactive python shell, which may be useful for debugging buildbot
|
||||
# internals. It is probably only useful for buildbot developers. You can also
|
||||
# use an authorized_keys file, or plain telnet.
|
||||
#from buildbot import manhole
|
||||
#c['manhole'] = manhole.PasswordManhole("tcp:9999:interface=127.0.0.1",
|
||||
# "admin", "password")
|
||||
|
||||
|
||||
####### 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'] = "WebRTC"
|
||||
c['projectURL'] = "http://www.webrtc.org"
|
||||
|
||||
# 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.
|
||||
|
||||
#c['buildbotURL'] = "http://localhost:8010/"
|
||||
c['buildbotURL'] = "http://webrtc-chrome.lul.corp.google.com:8010/"
|
@ -31,6 +31,7 @@ from buildbot.buildslave import BuildSlave
|
||||
|
||||
c['slaves'] = [BuildSlave('android', 'pass', max_builds=1),
|
||||
BuildSlave('chromeos', 'pass', max_builds=1),
|
||||
BuildSlave('linux-chrome', 'pass', max_builds=1),
|
||||
BuildSlave('linux-clang', 'pass', max_builds=1),
|
||||
BuildSlave('linux-slave-1', 'pass', max_builds=1),
|
||||
BuildSlave('linux-slave-2', 'pass', max_builds=1),
|
||||
@ -84,36 +85,18 @@ webrtc_scheduler = Scheduler(name='all', branch=None, treeStableTimer=5*60,
|
||||
'Android',
|
||||
'ChromeOS'
|
||||
])
|
||||
c['schedulers'] = [webrtc_scheduler]
|
||||
chrome_scheduler = Scheduler(name='chrome', branch=None, treeStableTimer=60*60,
|
||||
builderNames=['Chrome'])
|
||||
|
||||
c['schedulers'] = [webrtc_scheduler, chrome_scheduler]
|
||||
|
||||
####### BUILDERS
|
||||
|
||||
# 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 builder
|
||||
# slavename (required): which slave to use (must appear in c['bots'])
|
||||
# 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
|
||||
|
||||
# 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/steps/source.py for
|
||||
# CVS, SVN, and others.
|
||||
|
||||
from buildbot.process import factory
|
||||
from buildbot.steps import shell
|
||||
from webrtc_buildbot import utils
|
||||
|
||||
####### TESTS
|
||||
# Tests to run on Virtual machine bots and our Mac hardware.
|
||||
# Defines the supported tests followed by a tuple defining if the tests are
|
||||
# enabled on Linux, Mac and/or Windows (in that order; defined in utils.py).
|
||||
|
||||
from webrtc_buildbot import utils
|
||||
|
||||
NORMAL_TESTS = {
|
||||
# Test name Linux Mac Windows
|
||||
'audio_coding_module_test': (True, True, True),
|
||||
@ -172,7 +155,14 @@ mac_physical_machine_tests = utils.GetEnabledTests(PHYSICAL_MACHINE_TESTS,
|
||||
windows_physical_machine_tests = utils.GetEnabledTests(PHYSICAL_MACHINE_TESTS,
|
||||
'Windows')
|
||||
|
||||
############# Linux Builders #######################################
|
||||
####### FACTORIES
|
||||
# Factories defines how the build is run and can be used in multiple instances
|
||||
# on multiple machines, depending on how many builders are defined.
|
||||
|
||||
from buildbot.process import factory
|
||||
from buildbot.steps import shell
|
||||
|
||||
############# Linux factories #######################################
|
||||
linux_factory_64_dbg = utils.WebRTCLinuxFactory(
|
||||
utils.BuildStatusOracle('linux_factory_64_dbg'))
|
||||
linux_factory_64_dbg.EnableBuild()
|
||||
@ -207,6 +197,10 @@ chromeos_factory = utils.WebRTCLinuxFactory(
|
||||
chromeos_factory.EnableBuild(chrome_os=True)
|
||||
chromeos_factory.EnableTests(linux_normal_tests)
|
||||
|
||||
linux_chrome_factory = utils.WebRTCChromeFactory(
|
||||
utils.BuildStatusOracle('linux_chrome'))
|
||||
linux_chrome_factory.EnableBuild()
|
||||
|
||||
linux_clang = utils.WebRTCLinuxFactory(
|
||||
utils.BuildStatusOracle('linux_clang'))
|
||||
linux_clang.EnableBuild(clang=True)
|
||||
@ -224,7 +218,7 @@ android_factory = utils.WebRTCAndroidFactory(
|
||||
utils.BuildStatusOracle('android_factory'))
|
||||
android_factory.EnableBuild(product='toro')
|
||||
|
||||
############## Mac Builders #######################################
|
||||
############## Mac factories #######################################
|
||||
mac_factory_32_dbg = utils.WebRTCMacFactory(
|
||||
utils.BuildStatusOracle('mac_factory_32_dbg'))
|
||||
mac_factory_32_dbg.EnableBuild(build_type='both')
|
||||
@ -235,7 +229,7 @@ mac_factory_32_release = utils.WebRTCMacFactory(
|
||||
mac_factory_32_release.EnableBuild(build_type='both', release=True)
|
||||
mac_factory_32_release.EnableTests(mac_normal_tests)
|
||||
|
||||
############# Windows Builders #######################################
|
||||
############# Windows factories #######################################
|
||||
win_factory_32_Debug = utils.WebRTCWinFactory(
|
||||
utils.BuildStatusOracle('win_factory_32_debug'))
|
||||
win_factory_32_Debug.EnableBuild(configuration='Debug')
|
||||
@ -246,6 +240,16 @@ win_factory_32_Release = utils.WebRTCWinFactory(
|
||||
win_factory_32_Release.EnableBuild(configuration='Release')
|
||||
win_factory_32_Release.EnableTests(windows_normal_tests)
|
||||
|
||||
####### BUILDERS
|
||||
|
||||
# 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 builder
|
||||
# slavename (required): which slave to use (must appear in c['bots'])
|
||||
# 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
|
||||
|
||||
linux_builder_64_debug = {
|
||||
'name': 'Linux64DBG',
|
||||
'slavename': 'linux-slave-1',
|
||||
@ -306,6 +310,12 @@ linux_builder_video = {
|
||||
'builddir': 'video',
|
||||
'factory': linux_factory_video,
|
||||
}
|
||||
linux_builder_chrome = {
|
||||
'name': "Chrome",
|
||||
'slavename': "linux-chrome",
|
||||
'builddir': "linux-chrome",
|
||||
'factory': linux_chrome_factory,
|
||||
}
|
||||
linux_builder_clang = {
|
||||
'name': 'LinuxClang',
|
||||
'slavename': 'linux-clang',
|
||||
@ -345,6 +355,7 @@ c['builders'] = [
|
||||
linux_builder_video,
|
||||
android_builder_1,
|
||||
chromeos_builder,
|
||||
linux_builder_chrome,
|
||||
]
|
||||
|
||||
####### STATUS TARGETS
|
||||
|
@ -404,7 +404,8 @@ class WebRTCChromeFactory(WebRTCFactory):
|
||||
cmd = ['make', target, '-j100']
|
||||
if make_extra is not None:
|
||||
cmd.append(make_extra)
|
||||
self.AddCommonStep(cmd=cmd, descriptor=descriptor, workdir='build/src')
|
||||
self.AddCommonStep(cmd=cmd, descriptor=descriptor,
|
||||
warn_on_failure=True, workdir='build/src')
|
||||
|
||||
|
||||
class WebRTCLinuxFactory(WebRTCFactory):
|
||||
|
Loading…
x
Reference in New Issue
Block a user