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:
@@ -7,7 +7,9 @@
|
|||||||
# in the file PATENTS. All contributing project authors may
|
# in the file PATENTS. All contributing project authors may
|
||||||
# be found in the AUTHORS file in the root of the source tree.
|
# 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,
|
# This master configuration file reuses most of the WebRTC buildbot master,
|
||||||
# to avoid duplicating the configuration as much as possible.
|
# to avoid duplicating the configuration as much as possible.
|
||||||
@@ -16,7 +18,7 @@ __author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
|||||||
LIBVPX_BUILD = True
|
LIBVPX_BUILD = True
|
||||||
LIBVPX_DEPS_LIST = [
|
LIBVPX_DEPS_LIST = [
|
||||||
('trunk/third_party/libvpx/source/libvpx',
|
('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,
|
vars = {'LIBVPX_BUILD':LIBVPX_BUILD,
|
||||||
@@ -24,3 +26,7 @@ vars = {'LIBVPX_BUILD':LIBVPX_BUILD,
|
|||||||
execfile('../master.webrtc/master.cfg', vars, vars)
|
execfile('../master.webrtc/master.cfg', vars, vars)
|
||||||
|
|
||||||
c = BuildmasterConfig = vars['c']
|
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
|
# in the file PATENTS. All contributing project authors may
|
||||||
# be found in the AUTHORS file in the root of the source tree.
|
# be found in the AUTHORS file in the root of the source tree.
|
||||||
|
|
||||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
|
||||||
|
|
||||||
c = BuildmasterConfig = {}
|
c = BuildmasterConfig = {}
|
||||||
|
|
||||||
import os
|
import os
|
||||||
@@ -16,7 +14,7 @@ from buildbot.buildslave import BuildSlave
|
|||||||
from buildbot.changes.pb import PBChangeSource
|
from buildbot.changes.pb import PBChangeSource
|
||||||
from buildbot.changes.svnpoller import SVNPoller
|
from buildbot.changes.svnpoller import SVNPoller
|
||||||
from buildbot.process import factory
|
from buildbot.process import factory
|
||||||
from buildbot.scheduler import Scheduler
|
from buildbot.schedulers import basic
|
||||||
from buildbot.schedulers import timed
|
from buildbot.schedulers import timed
|
||||||
from buildbot.status import html
|
from buildbot.status import html
|
||||||
from buildbot.status import mail
|
from buildbot.status import mail
|
||||||
@@ -29,12 +27,14 @@ from master import slaves_list
|
|||||||
import config
|
import config
|
||||||
from webrtc_buildbot import utils
|
from webrtc_buildbot import utils
|
||||||
|
|
||||||
ActiveMaster = config.Master.WebRTC
|
|
||||||
|
|
||||||
def is_libvpx_build():
|
def is_libvpx_build():
|
||||||
"""Used to check if this master is the default or the libvpx master."""
|
"""Used to check if this master is the default or the libvpx master."""
|
||||||
return 'LIBVPX_BUILD' in globals()
|
return 'LIBVPX_BUILD' in globals()
|
||||||
|
|
||||||
|
ActiveMaster = (config.Master.Libvpx if is_libvpx_build() else
|
||||||
|
config.Master.WebRTC)
|
||||||
|
|
||||||
####### CHANGESOURCES
|
####### CHANGESOURCES
|
||||||
import master_source_cfg
|
import master_source_cfg
|
||||||
master_source_cfg.ConfigureChangeSource(config, c)
|
master_source_cfg.ConfigureChangeSource(config, c)
|
||||||
@@ -42,25 +42,25 @@ master_source_cfg.ConfigureChangeSource(config, c)
|
|||||||
####### SCHEDULERS
|
####### SCHEDULERS
|
||||||
from buildbot.scheduler import Scheduler
|
from buildbot.scheduler import Scheduler
|
||||||
builder_names = ['Win32Debug',
|
builder_names = ['Win32Debug',
|
||||||
'Win32Release',
|
'Win32Release',
|
||||||
'MacOS32DBG',
|
'MacOS32DBG',
|
||||||
'MacOS32Release',
|
'MacOS32Release',
|
||||||
'Linux32DBG',
|
'Linux32DBG',
|
||||||
'Linux32Release',
|
'Linux32Release',
|
||||||
'Linux64DBG',
|
'Linux64DBG',
|
||||||
'Linux64Release',
|
'Linux64Release',
|
||||||
'LinuxClang',
|
'LinuxClang',
|
||||||
'LinuxMemcheck',
|
'LinuxMemcheck',
|
||||||
'LinuxTsan',
|
'LinuxTsan',
|
||||||
'LinuxAsan',
|
'LinuxAsan',
|
||||||
'Linux64DBG-GCC4.6',
|
'Linux64DBG-GCC4.6',
|
||||||
'LinuxLargeTests',
|
'LinuxLargeTests',
|
||||||
'MacLargeTests',
|
'MacLargeTests',
|
||||||
'WinLargeTests',
|
'WinLargeTests',
|
||||||
'Android',
|
'Android',
|
||||||
'AndroidNDK',
|
'AndroidNDK',
|
||||||
'ChromeOS',
|
'ChromeOS',
|
||||||
]
|
]
|
||||||
|
|
||||||
if is_libvpx_build():
|
if is_libvpx_build():
|
||||||
# Run the libvpx waterfall only nightly since it re-uses the WebRTC bots and
|
# 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)
|
builderNames=builder_names, hour=20)
|
||||||
else:
|
else:
|
||||||
# Trigger builds on each check-in if we are the regular WebRTC waterfall.
|
# 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
|
# 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
|
# 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'),
|
'http://src.chromium.org/chrome/trunk/deps/third_party/asan'),
|
||||||
]
|
]
|
||||||
|
|
||||||
DEFAULT_CUSTOM_DEPS = []
|
# Libvpx waterfall has additional configuration (inherits this config).
|
||||||
if is_libvpx_build():
|
DEFAULT_CUSTOM_DEPS = LIBVPX_DEPS_LIST if is_libvpx_build() else []
|
||||||
# Additional configuration for libvpx waterfall (inherits this config).
|
|
||||||
DEFAULT_CUSTOM_DEPS += LIBVPX_DEPS_LIST
|
|
||||||
|
|
||||||
# Linux
|
# Linux
|
||||||
linux_factory_64_dbg = utils.WebRTCLinuxFactory(
|
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.
|
# Use an environment variable to easily avoid enabling e-mail for development.
|
||||||
if not os.getenv('BUILDBOT_DEVELOPMENT_MODE'):
|
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(
|
email_status = mail.MailNotifier(
|
||||||
fromaddr='webrtc-cb-watchlist@google.com',
|
fromaddr=watchlist_email,
|
||||||
extraRecipients=['webrtc-cb-watchlist@google.com'],
|
extraRecipients=[watchlist_email],
|
||||||
sendToInterestedUsers=True,
|
sendToInterestedUsers=True,
|
||||||
mode='failing',
|
mode='failing',
|
||||||
lookup=master_utils.UsersAreEmails())
|
lookup=master_utils.UsersAreEmails())
|
||||||
|
@@ -7,8 +7,6 @@
|
|||||||
# in the file PATENTS. All contributing project authors may
|
# in the file PATENTS. All contributing project authors may
|
||||||
# be found in the AUTHORS file in the root of the source tree.
|
# 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."""
|
"""Chrome+WebRTC bots configured in Chromium style."""
|
||||||
|
|
||||||
from buildbot.schedulers import timed
|
from buildbot.schedulers import timed
|
||||||
|
@@ -7,8 +7,6 @@
|
|||||||
# in the file PATENTS. All contributing project authors may
|
# in the file PATENTS. All contributing project authors may
|
||||||
# be found in the AUTHORS file in the root of the source tree.
|
# 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."""
|
"""Source control poller for the WebRTC code."""
|
||||||
|
|
||||||
from buildbot.changes import svnpoller
|
from buildbot.changes import svnpoller
|
||||||
|
@@ -7,8 +7,6 @@
|
|||||||
# in the file PATENTS. All contributing project authors may
|
# in the file PATENTS. All contributing project authors may
|
||||||
# be found in the AUTHORS file in the root of the source tree.
|
# be found in the AUTHORS file in the root of the source tree.
|
||||||
|
|
||||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
|
||||||
|
|
||||||
import ntpath
|
import ntpath
|
||||||
import os
|
import os
|
||||||
import posixpath
|
import posixpath
|
||||||
|
@@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
"""Unit tests for helper functions in utils.py."""
|
"""Unit tests for helper functions in utils.py."""
|
||||||
|
|
||||||
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
|
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from webrtc_buildbot import utils
|
from webrtc_buildbot import utils
|
||||||
|
@@ -7,8 +7,6 @@
|
|||||||
# in the file PATENTS. All contributing project authors may
|
# in the file PATENTS. All contributing project authors may
|
||||||
# be found in the AUTHORS file in the root of the source tree.
|
# 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.
|
"""Utility class to build Chromium with the latest WebRTC.
|
||||||
|
|
||||||
Based on chromium_factory.py and adds WebRTC-specific custom_deps."""
|
Based on chromium_factory.py and adds WebRTC-specific custom_deps."""
|
||||||
|
@@ -7,8 +7,6 @@
|
|||||||
# in the file PATENTS. All contributing project authors may
|
# in the file PATENTS. All contributing project authors may
|
||||||
# be found in the AUTHORS file in the root of the source tree.
|
# 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.
|
"""Set of utilities to add commands to a buildbot factory.
|
||||||
|
|
||||||
This is based on chromium_commands.py and adds WebRTC-specific commands."""
|
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.
|
# separate repo to put all the diff files to be tried.
|
||||||
svn_url = None
|
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):
|
class Archive(object):
|
||||||
archive_host = 'localhost'
|
archive_host = 'localhost'
|
||||||
# Skip any filenames (exes, symbols, etc.) starting with these strings
|
# Skip any filenames (exes, symbols, etc.) starting with these strings
|
||||||
|
Reference in New Issue
Block a user