Libvpx waterfall additional changes. The CL http://review.webrtc.org/595005/ was not complete since it didn't put the libvpx waterfall at its own port.
Chrome bots are now using the correct scheduler. Created separate watchlist e-mail for libvpx builds to avoid spamming WebRTC when these builds fail. BUG=None TEST=Tested on local master and slaves. Review URL: https://webrtc-codereview.appspot.com/620004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2331 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
7d3b07a516
commit
bb24b14c8a
@ -7,7 +7,9 @@
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
||||
from master import master_utils
|
||||
from master import slaves_list
|
||||
import config
|
||||
|
||||
# This master configuration file reuses most of the WebRTC buildbot master,
|
||||
# to avoid duplicating the configuration as much as possible.
|
||||
@ -16,7 +18,7 @@ __author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
||||
LIBVPX_BUILD = True
|
||||
LIBVPX_DEPS_LIST = [
|
||||
('trunk/third_party/libvpx/source/libvpx',
|
||||
'http://git.chromium.org/webm/libvpx.git'),
|
||||
'http://git.chromium.org/webm/libvpx.git@master'),
|
||||
]
|
||||
|
||||
vars = {'LIBVPX_BUILD':LIBVPX_BUILD,
|
||||
@ -24,3 +26,7 @@ vars = {'LIBVPX_BUILD':LIBVPX_BUILD,
|
||||
execfile('../master.webrtc/master.cfg', vars, vars)
|
||||
|
||||
c = BuildmasterConfig = vars['c']
|
||||
|
||||
# Remove the Chrome Bloat builder since it's not useful for the libvpx project.
|
||||
c['builders'] = filter(lambda x: x['name'] != 'LinuxChromeBloat', c['builders'])
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
../master.webrtc/master_builders_cfg.py
|
@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
"""Chrome+WebRTC bots customized for Libvpx build."""
|
||||
|
||||
from buildbot.schedulers import timed
|
||||
|
||||
from master import master_config
|
||||
from webrtc_buildbot import webrtc_chromium_factory
|
||||
|
||||
def linux():
|
||||
return webrtc_chromium_factory.ChromiumWebRTCFactory('src/build', 'linux2')
|
||||
def mac():
|
||||
return webrtc_chromium_factory.ChromiumWebRTCFactory('src/build', 'mac')
|
||||
def win():
|
||||
return webrtc_chromium_factory.ChromiumWebRTCFactory('src/build', 'win32')
|
||||
|
||||
CHROME_LKGR = 'http://chromium-status.appspot.com/lkgr'
|
||||
|
||||
|
||||
def ConfigureChromeWebRTCBuilders(c, custom_deps_list=[]):
|
||||
# The Libvpx Chrome bots are setup without the Chromium helper classes since
|
||||
# they don't have support for a Nightly scheduler.
|
||||
|
||||
# Linux
|
||||
chrome_linux_debug_factory = linux().ChromiumWebRTCLatestFactory(
|
||||
target='Debug',
|
||||
factory_properties={'safesync_url': CHROME_LKGR},
|
||||
custom_deps_list=custom_deps_list)
|
||||
|
||||
chrome_linux_debug_builder = {
|
||||
'name': 'LinuxChrome',
|
||||
'factory': chrome_linux_debug_factory,
|
||||
}
|
||||
c['builders'].append(chrome_linux_debug_builder)
|
||||
c['schedulers'][0].builderNames.append('LinuxChrome')
|
||||
|
||||
# Mac 10.7 (Lion) ...
|
||||
chrome_mac_debug_factory = mac().ChromiumWebRTCLatestFactory(
|
||||
target='Debug',
|
||||
factory_properties={'safesync_url': CHROME_LKGR},
|
||||
custom_deps_list=custom_deps_list)
|
||||
|
||||
chrome_mac_debug_builder = {
|
||||
'name': 'MacChrome',
|
||||
'factory': chrome_mac_debug_factory,
|
||||
}
|
||||
c['builders'].append(chrome_mac_debug_builder)
|
||||
c['schedulers'][0].builderNames.append('MacChrome')
|
||||
|
||||
# Windows...
|
||||
chrome_win_debug_factory = win().ChromiumWebRTCLatestFactory(
|
||||
target='Debug',
|
||||
factory_properties={'safesync_url': CHROME_LKGR},
|
||||
custom_deps_list=custom_deps_list)
|
||||
|
||||
chrome_win_debug_builder = {
|
||||
'name': 'WinChrome',
|
||||
'factory': chrome_win_debug_factory,
|
||||
}
|
||||
c['builders'].append(chrome_win_debug_builder)
|
||||
c['schedulers'][0].builderNames.append('WinChrome')
|
||||
|
||||
|
||||
def ConfigureNightlyChromeWebRTCBloatBuilder(c, custom_deps_list=[]):
|
||||
# Must add a Bloat builder for Libvpx to avoid an error during the
|
||||
# slave configuration check. This builder will be removed at the last stage of
|
||||
# the configuration loading (see master.libvpx/master.cfg).
|
||||
chrome_bloat_factory = linux().ChromiumWebRTCBloatFactory(
|
||||
target='Release',
|
||||
factory_properties={'safesync_url': CHROME_LKGR,
|
||||
'gclient_env': {'GYP_DEFINES': 'profiling=1'}},
|
||||
custom_deps_list=custom_deps_list)
|
||||
|
||||
chrome_bloat_builder = {
|
||||
'name': 'LinuxChromeBloat',
|
||||
'factory': chrome_bloat_factory,
|
||||
'category': 'linux',
|
||||
}
|
||||
c['builders'].append(chrome_bloat_builder)
|
@ -7,8 +7,6 @@
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
||||
|
||||
c = BuildmasterConfig = {}
|
||||
|
||||
import os
|
||||
@ -16,7 +14,7 @@ from buildbot.buildslave import BuildSlave
|
||||
from buildbot.changes.pb import PBChangeSource
|
||||
from buildbot.changes.svnpoller import SVNPoller
|
||||
from buildbot.process import factory
|
||||
from buildbot.scheduler import Scheduler
|
||||
from buildbot.schedulers import basic
|
||||
from buildbot.schedulers import timed
|
||||
from buildbot.status import html
|
||||
from buildbot.status import mail
|
||||
@ -29,12 +27,14 @@ from master import slaves_list
|
||||
import config
|
||||
from webrtc_buildbot import utils
|
||||
|
||||
ActiveMaster = config.Master.WebRTC
|
||||
|
||||
def is_libvpx_build():
|
||||
"""Used to check if this master is the default or the libvpx master."""
|
||||
return 'LIBVPX_BUILD' in globals()
|
||||
|
||||
ActiveMaster = (config.Master.Libvpx if is_libvpx_build() else
|
||||
config.Master.WebRTC)
|
||||
|
||||
####### CHANGESOURCES
|
||||
import master_source_cfg
|
||||
master_source_cfg.ConfigureChangeSource(config, c)
|
||||
@ -42,25 +42,25 @@ master_source_cfg.ConfigureChangeSource(config, c)
|
||||
####### SCHEDULERS
|
||||
from buildbot.scheduler import Scheduler
|
||||
builder_names = ['Win32Debug',
|
||||
'Win32Release',
|
||||
'MacOS32DBG',
|
||||
'MacOS32Release',
|
||||
'Linux32DBG',
|
||||
'Linux32Release',
|
||||
'Linux64DBG',
|
||||
'Linux64Release',
|
||||
'LinuxClang',
|
||||
'LinuxMemcheck',
|
||||
'LinuxTsan',
|
||||
'LinuxAsan',
|
||||
'Linux64DBG-GCC4.6',
|
||||
'LinuxLargeTests',
|
||||
'MacLargeTests',
|
||||
'WinLargeTests',
|
||||
'Android',
|
||||
'AndroidNDK',
|
||||
'ChromeOS',
|
||||
]
|
||||
'Win32Release',
|
||||
'MacOS32DBG',
|
||||
'MacOS32Release',
|
||||
'Linux32DBG',
|
||||
'Linux32Release',
|
||||
'Linux64DBG',
|
||||
'Linux64Release',
|
||||
'LinuxClang',
|
||||
'LinuxMemcheck',
|
||||
'LinuxTsan',
|
||||
'LinuxAsan',
|
||||
'Linux64DBG-GCC4.6',
|
||||
'LinuxLargeTests',
|
||||
'MacLargeTests',
|
||||
'WinLargeTests',
|
||||
'Android',
|
||||
'AndroidNDK',
|
||||
'ChromeOS',
|
||||
]
|
||||
|
||||
if is_libvpx_build():
|
||||
# Run the libvpx waterfall only nightly since it re-uses the WebRTC bots and
|
||||
@ -69,7 +69,8 @@ if is_libvpx_build():
|
||||
builderNames=builder_names, hour=20)
|
||||
else:
|
||||
# Trigger builds on each check-in if we are the regular WebRTC waterfall.
|
||||
scheduler = Scheduler(name='all', branch='trunk', builderNames=builder_names)
|
||||
scheduler = basic.SingleBranchScheduler(name='all', branch='trunk',
|
||||
builderNames=builder_names)
|
||||
|
||||
# Note that additional schedulers (used by the Chrome+WebRTC builders) are
|
||||
# defined in master_builders_cfg.py. This is an in progress change to make all
|
||||
@ -175,10 +176,8 @@ ASAN_DEPS_LIST = [
|
||||
'http://src.chromium.org/chrome/trunk/deps/third_party/asan'),
|
||||
]
|
||||
|
||||
DEFAULT_CUSTOM_DEPS = []
|
||||
if is_libvpx_build():
|
||||
# Additional configuration for libvpx waterfall (inherits this config).
|
||||
DEFAULT_CUSTOM_DEPS += LIBVPX_DEPS_LIST
|
||||
# Libvpx waterfall has additional configuration (inherits this config).
|
||||
DEFAULT_CUSTOM_DEPS = LIBVPX_DEPS_LIST if is_libvpx_build() else []
|
||||
|
||||
# Linux
|
||||
linux_factory_64_dbg = utils.WebRTCLinuxFactory(
|
||||
@ -476,9 +475,11 @@ c['status'][0].putChild("tgrid", grid.TransposedGridStatusResource())
|
||||
|
||||
# Use an environment variable to easily avoid enabling e-mail for development.
|
||||
if not os.getenv('BUILDBOT_DEVELOPMENT_MODE'):
|
||||
watchlist_email = ('libvpx-cb-watchlist@google.com' if is_libvpx_build() else
|
||||
'webrtc-cb-watchlist@google.com')
|
||||
email_status = mail.MailNotifier(
|
||||
fromaddr='webrtc-cb-watchlist@google.com',
|
||||
extraRecipients=['webrtc-cb-watchlist@google.com'],
|
||||
fromaddr=watchlist_email,
|
||||
extraRecipients=[watchlist_email],
|
||||
sendToInterestedUsers=True,
|
||||
mode='failing',
|
||||
lookup=master_utils.UsersAreEmails())
|
||||
|
@ -7,8 +7,6 @@
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
||||
|
||||
"""Chrome+WebRTC bots configured in Chromium style."""
|
||||
|
||||
from buildbot.schedulers import timed
|
||||
|
@ -7,8 +7,6 @@
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
||||
|
||||
"""Source control poller for the WebRTC code."""
|
||||
|
||||
from buildbot.changes import svnpoller
|
||||
|
@ -7,8 +7,6 @@
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
||||
|
||||
import ntpath
|
||||
import os
|
||||
import posixpath
|
||||
|
@ -9,8 +9,6 @@
|
||||
|
||||
"""Unit tests for helper functions in utils.py."""
|
||||
|
||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
||||
|
||||
import unittest
|
||||
|
||||
from webrtc_buildbot import utils
|
||||
|
@ -7,8 +7,6 @@
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
||||
|
||||
"""Utility class to build Chromium with the latest WebRTC.
|
||||
|
||||
Based on chromium_factory.py and adds WebRTC-specific custom_deps."""
|
||||
|
@ -7,8 +7,6 @@
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
||||
|
||||
"""Set of utilities to add commands to a buildbot factory.
|
||||
|
||||
This is based on chromium_commands.py and adds WebRTC-specific commands."""
|
||||
|
@ -140,6 +140,13 @@ class Master(object):
|
||||
# separate repo to put all the diff files to be tried.
|
||||
svn_url = None
|
||||
|
||||
class Libvpx(_ChromiumBase):
|
||||
# Used by the waterfall display.
|
||||
project_name = 'libvpx'
|
||||
master_port = 8011
|
||||
slave_port = 9114
|
||||
master_port_alt = 9016
|
||||
|
||||
class Archive(object):
|
||||
archive_host = 'localhost'
|
||||
# Skip any filenames (exes, symbols, etc.) starting with these strings
|
||||
|
Loading…
Reference in New Issue
Block a user