Android trybots + fixing web status config
BUG=None TEST=Tested on local master and slave. Review URL: https://webrtc-codereview.appspot.com/514001 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2143 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
5c0c18d823
commit
c6c4ffc5d8
2
tools/.gitignore
vendored
2
tools/.gitignore
vendored
@ -51,6 +51,8 @@ twistd.pid
|
||||
/continuous_build/build_internal/masters/master.webrtc/win-32-dbg
|
||||
/continuous_build/build_internal/masters/master.webrtc/win-32-release
|
||||
/continuous_build/build_internal/masters/master.webrtc/video
|
||||
/continuous_build/build_internal/masters/master.tryserver.webrtc/android-trybot
|
||||
/continuous_build/build_internal/masters/master.tryserver.webrtc/android-ndk-trybot
|
||||
/continuous_build/build_internal/masters/master.tryserver.webrtc/linux-trybot-1
|
||||
/continuous_build/build_internal/masters/master.tryserver.webrtc/linux-trybot-2
|
||||
/continuous_build/build_internal/masters/master.tryserver.webrtc/mac-trybot-1
|
||||
|
@ -39,6 +39,8 @@ c['change_source'] = []
|
||||
|
||||
####### SCHEDULERS
|
||||
pools = BuildersPools('webrtc')
|
||||
pools['webrtc'].append('android')
|
||||
pools['webrtc'].append('android_ndk')
|
||||
pools['webrtc'].append('linux')
|
||||
pools['webrtc'].append('linux_rel')
|
||||
pools['webrtc'].append('mac')
|
||||
@ -106,6 +108,14 @@ linux_factory_release = utils.WebRTCLinuxFactory(
|
||||
linux_factory_release.EnableBuild()
|
||||
linux_factory_release.EnableTests(linux_normal_tests)
|
||||
|
||||
android_factory = utils.WebRTCAndroidFactory(
|
||||
utils.BuildStatusOracle('android_factory'), is_try_slave=True)
|
||||
android_factory.EnableBuild(product='toro')
|
||||
|
||||
android_ndk_factory = utils.WebRTCAndroidNDKFactory(
|
||||
utils.BuildStatusOracle('android_ndk_factory'), is_try_slave=True)
|
||||
android_ndk_factory.EnableBuild()
|
||||
|
||||
# Mac
|
||||
mac_factory_dbg = utils.WebRTCMacFactory(
|
||||
utils.BuildStatusOracle('mac_factory_dbg'), is_try_slave=True)
|
||||
@ -129,6 +139,18 @@ win_factory_release.EnableBuild(configuration='Release')
|
||||
win_factory_release.EnableTests(windows_normal_tests)
|
||||
|
||||
####### BUILDERS
|
||||
android_builder = {
|
||||
'name': 'android',
|
||||
'slavename': 'webrtc-cb-linux-slave-7',
|
||||
'builddir': 'android-trybot',
|
||||
'factory': android_factory,
|
||||
}
|
||||
android_ndk_builder = {
|
||||
'name': 'android_ndk',
|
||||
'slavename': 'webrtc-cb-linux-slave-10',
|
||||
'builddir': 'android-ndk-trybot',
|
||||
'factory': android_ndk_factory,
|
||||
}
|
||||
linux_builder_debug = {
|
||||
'name': 'linux',
|
||||
'slavename': 'webrtc-cb-linux-slave-11',
|
||||
@ -173,6 +195,8 @@ c['builders'] = [
|
||||
mac_builder_release,
|
||||
linux_builder_debug,
|
||||
linux_builder_release,
|
||||
android_builder,
|
||||
android_ndk_builder,
|
||||
]
|
||||
|
||||
|
||||
@ -212,15 +236,12 @@ master_utils.VerifySetup(c, slaves)
|
||||
|
||||
# Adds common status and tools to this master.
|
||||
# Use our own mail notifier.
|
||||
master_utils.AutoSetupMaster(c, ActiveMaster, False,
|
||||
master_utils.AutoSetupMaster(c, ActiveMaster, mail_notifier=False,
|
||||
public_html='../master.webrtc/public_html',
|
||||
templates=['./templates',
|
||||
'../master.webrtc/templates'])
|
||||
|
||||
####### STATUS TARGETS
|
||||
# Port 9010 is the same as Chromium's try server web interface:
|
||||
web_page = html.WebStatus(http_port=9010, allowForce=True)
|
||||
c['status'] = [web_page]
|
||||
|
||||
# Use an environment variable to easily avoid enabling e-mail for development.
|
||||
if not os.getenv('BUILDBOT_DEVELOPMENT_MODE'):
|
||||
|
@ -9,6 +9,22 @@
|
||||
|
||||
def linux():
|
||||
return [
|
||||
{
|
||||
'master': 'TryServer',
|
||||
'os': 'linux',
|
||||
'version': 'lucid',
|
||||
'bits': '64',
|
||||
'builder': 'android',
|
||||
'hostname': 'webrtc-cb-linux-slave-7',
|
||||
},
|
||||
{
|
||||
'master': 'TryServer',
|
||||
'os': 'linux',
|
||||
'version': 'lucid',
|
||||
'bits': '64',
|
||||
'builder': 'android_ndk',
|
||||
'hostname': 'webrtc-cb-linux-slave-10',
|
||||
},
|
||||
{
|
||||
'master': 'TryServer',
|
||||
'os': 'linux',
|
||||
|
@ -394,12 +394,10 @@ slaves = slaves_list.SlavesList('slaves.cfg', 'WebRTC')
|
||||
master_utils.VerifySetup(c, slaves)
|
||||
|
||||
# Adds common status and tools to this master.
|
||||
master_utils.AutoSetupMaster(c, ActiveMaster,
|
||||
master_utils.AutoSetupMaster(c, ActiveMaster, mail_notifier=False,
|
||||
enable_http_status_push=ActiveMaster.is_production_host)
|
||||
|
||||
####### STATUS TARGETS
|
||||
web_page = html.WebStatus(http_port=8010, allowForce=True)
|
||||
c['status'] = [web_page]
|
||||
|
||||
# Use an environment variable to easily avoid enabling e-mail for development.
|
||||
if not os.getenv('BUILDBOT_DEVELOPMENT_MODE'):
|
||||
|
@ -29,13 +29,13 @@ SUPPORTED_PLATFORMS = ('Linux', 'Mac', 'Windows')
|
||||
|
||||
WEBRTC_SOLUTION_NAME = 'trunk'
|
||||
WEBRTC_SVN_LOCATION = 'http://webrtc.googlecode.com/svn/trunk'
|
||||
WEBRTC_TRUNK_DIR = 'build/trunk/'
|
||||
WEBRTC_BUILD_DIR = 'build/'
|
||||
WEBRTC_TRUNK_DIR = 'build/trunk'
|
||||
WEBRTC_BUILD_DIR = 'build'
|
||||
|
||||
VALGRIND_CMD = ['tools/valgrind-webrtc/webrtc_tests.sh', '-t', 'cmdline']
|
||||
|
||||
DEFAULT_COVERAGE_DIR = '/var/www/coverage/'
|
||||
DEFAULT_BLOAT_DIR = '/var/www/bloat/'
|
||||
DEFAULT_COVERAGE_DIR = '/var/www/coverage'
|
||||
DEFAULT_BLOAT_DIR = '/var/www/bloat'
|
||||
DEFAULT_MASTER_WORK_DIR = '.'
|
||||
GCLIENT_RETRIES = 3
|
||||
|
||||
@ -225,13 +225,17 @@ class WebRTCFactory(factory.BuildFactory):
|
||||
"""
|
||||
self.AddCommonTestRunStep(test)
|
||||
|
||||
def AddGclientSyncStep(self, alwaysUseLatest=False):
|
||||
def AddGclientSyncStep(self, workdir=WEBRTC_BUILD_DIR,
|
||||
alwaysUseLatest=False):
|
||||
"""Helper method for invoking gclient sync.
|
||||
|
||||
Args:
|
||||
alwaysUseLatest: Set to true to always use the latest build, otherwise
|
||||
the highest revision in the changeset will be used
|
||||
for sync.
|
||||
workdir: The name of the directory to checkout the source into.
|
||||
The default is 'build' which is the base working dir of
|
||||
most build slaves.
|
||||
alwaysUseLatest: Set to true to always use the latest build, otherwise
|
||||
the highest revision in the changeset will be used
|
||||
for sync.
|
||||
"""
|
||||
gclient_spec = self._ConfigureWhatToBuild()
|
||||
env = self._GetEnvironmentWithDisabledDepotToolsUpdate()
|
||||
@ -246,7 +250,7 @@ class WebRTCFactory(factory.BuildFactory):
|
||||
self.addStep(chromium_step.GClient,
|
||||
alwaysUseLatest=alwaysUseLatest,
|
||||
gclient_spec=gclient_spec,
|
||||
workdir='build',
|
||||
workdir=workdir,
|
||||
mode='update',
|
||||
env=env,
|
||||
retry=retry,
|
||||
@ -459,8 +463,8 @@ class GenerateCodeCoverage(ShellCommand):
|
||||
class WebRTCAndroidFactory(WebRTCFactory):
|
||||
"""Sets up the Android build."""
|
||||
|
||||
def __init__(self, build_status_oracle):
|
||||
WebRTCFactory.__init__(self, build_status_oracle)
|
||||
def __init__(self, build_status_oracle, is_try_slave=False):
|
||||
WebRTCFactory.__init__(self, build_status_oracle, is_try_slave)
|
||||
|
||||
def EnableBuild(self, product='toro'):
|
||||
prefix = 'rm -rf out/target/product/%s/obj/' % product
|
||||
@ -472,10 +476,11 @@ class WebRTCAndroidFactory(WebRTCFactory):
|
||||
]
|
||||
cmd = ' ; '.join(cleanup_list)
|
||||
self.AddCommonStep(cmd, descriptor='cleanup')
|
||||
|
||||
cmd = 'svn checkout %s external/webrtc' % self.svn_url
|
||||
self.AddCommonStep(cmd, descriptor='svn (checkout)')
|
||||
|
||||
self.AddGclientSyncStep(workdir='build/trunk/external/webrtc')
|
||||
# Work around lack of support for checking out into another dir than the
|
||||
# last dir of the Subversion URL.
|
||||
self.AddCommonStep(cmd='mv external/webrtc/trunk/* external/webrtc',
|
||||
descriptor='Prepare WebRTC source')
|
||||
cmd = ('source build/envsetup.sh && lunch full_%s-eng '
|
||||
'&& mmm external/webrtc showcommands' % product)
|
||||
self.AddCommonStep(cmd, descriptor='build')
|
||||
@ -484,15 +489,15 @@ class WebRTCAndroidFactory(WebRTCFactory):
|
||||
class WebRTCAndroidNDKFactory(WebRTCFactory):
|
||||
"""Sets up the Android NDK build."""
|
||||
|
||||
def __init__(self, build_status_oracle):
|
||||
WebRTCFactory.__init__(self, build_status_oracle)
|
||||
def __init__(self, build_status_oracle, is_try_slave=False):
|
||||
WebRTCFactory.__init__(self, build_status_oracle, is_try_slave)
|
||||
|
||||
def EnableBuild(self):
|
||||
self.AddSmartCleanStep()
|
||||
self.AddGclientSyncStep()
|
||||
self._AddAndroidStep(cmd='gclient runhooks',
|
||||
descriptor='gen_android_makefiles')
|
||||
self._AddAndroidStep(cmd='make -j100', descriptor='make')
|
||||
self._AddAndroidStep(cmd='make -j100', descriptor='build')
|
||||
|
||||
def _AddAndroidStep(self, cmd, descriptor):
|
||||
full_cmd = ('source build/android/buildbot_functions.sh &&'
|
||||
@ -501,6 +506,7 @@ class WebRTCAndroidNDKFactory(WebRTCFactory):
|
||||
'%s' % cmd)
|
||||
self.AddCommonStep(cmd=full_cmd, descriptor=descriptor)
|
||||
|
||||
|
||||
class WebRTCChromeFactory(WebRTCFactory):
|
||||
"""Sets up the Chrome Browser+WebRTC build."""
|
||||
|
||||
|
@ -111,7 +111,7 @@ class Master(object):
|
||||
class WebRTC(_ChromiumBase):
|
||||
# Used by the waterfall display.
|
||||
project_name = 'WebRTC'
|
||||
master_port = 9010
|
||||
master_port = 8010
|
||||
slave_port = 9112
|
||||
master_port_alt = 9014
|
||||
|
||||
@ -129,7 +129,7 @@ class Master(object):
|
||||
|
||||
class TryServer(_ChromiumBase):
|
||||
project_name = 'WebRTC Try Server'
|
||||
master_port = 9011
|
||||
master_port = 9010
|
||||
slave_port = 9113
|
||||
master_port_alt = 9015
|
||||
try_job_port = 9018
|
||||
|
Loading…
x
Reference in New Issue
Block a user