Added a new Android NDK bot.

BUG=
TEST=

Review URL: https://webrtc-codereview.appspot.com/458001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1920 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
phoglund@webrtc.org 2012-03-21 08:19:02 +00:00
parent aaf62ac019
commit 2360d8212e
3 changed files with 63 additions and 14 deletions

View File

@ -30,6 +30,7 @@ c = BuildmasterConfig = {}
from buildbot.buildslave import BuildSlave
c['slaves'] = [BuildSlave('android', 'pass', max_builds=1),
BuildSlave('android-ndk', 'pass', max_builds=1),
BuildSlave('chromeos', 'pass', max_builds=1),
BuildSlave('linux-chrome', 'pass', max_builds=1),
BuildSlave('linux-clang', 'pass', max_builds=1),
@ -83,6 +84,7 @@ webrtc_scheduler = Scheduler(name='all', branch=None, treeStableTimer=5*60,
'Linux64DBG-GCC4.6',
'LinuxVideoTest',
'Android',
'AndroidNDK',
'ChromeOS'
])
chrome_scheduler = Scheduler(name='chrome', branch=None, treeStableTimer=60*60,
@ -221,6 +223,10 @@ android_factory = utils.WebRTCAndroidFactory(
utils.BuildStatusOracle('android_factory'))
android_factory.EnableBuild(product='toro')
android_ndk_factory = utils.WebRTCAndroidNDKFactory(
utils.BuildStatusOracle('android_ndk_factory'))
android_ndk_factory.EnableBuild()
############## Mac factories #######################################
mac_factory_32_dbg = utils.WebRTCMacFactory(
utils.BuildStatusOracle('mac_factory_32_dbg'))
@ -337,6 +343,12 @@ android_builder_1 = {
'builddir': 'android',
'factory': android_factory,
}
android_builder_ndk = {
'name': 'AndroidNDK',
'slavename': 'android-ndk',
'builddir': 'android-ndk',
'factory': android_ndk_factory,
}
linux_builder_gcc_4_6 = {
'name': 'Linux64DBG-GCC4.6',
'slavename': 'linux-slave-gcc-4.6',
@ -357,6 +369,7 @@ c['builders'] = [
linux_builder_gcc_4_6,
linux_builder_video,
android_builder_1,
android_builder_ndk,
chromeos_builder,
linux_builder_chrome,
]

View File

@ -200,9 +200,17 @@ class WebRTCFactory(factory.BuildFactory):
"""
self.AddCommonTestRunStep(test)
def AddGclientConfigStep(self):
"""Helper method for adding a gclient config step."""
self.AddCommonStep(['gclient', 'config', WEBRTC_SVN_LOCATION],
workdir=WEBRTC_BUILD_DIR,
descriptor='gclient_config')
def AddGclientSyncStep(self, force_sync):
"""Helper method for invoking gclient sync. Will retry if the operation
fails. Runs in the bot's build directory (e.g. one step above trunk).
"""Helper method for invoking gclient sync.
Will retry if the operation fails. Runs in the bot's build directory
(e.g. one step above trunk).
Args:
force_sync: If the sync should be forced, i.e. update even for
@ -414,9 +422,27 @@ class WebRTCAndroidFactory(WebRTCFactory):
cmd = 'svn checkout %s external/webrtc' % WEBRTC_SVN_LOCATION
self.AddCommonStep(cmd, descriptor='svn (checkout)')
cmd = ('source build/envsetup.sh && lunch full_%s-eng '
'&& mmm external/webrtc showcommands' % product)
self.AddCommonStep(cmd, descriptor='build')
cmd = ('source build/envsetup.sh && lunch full_%s-eng ' % product)
self.AddCommonStep(cmd, descriptor='make_android')
cmd = 'source build/envsetup.sh && mmm external/webrtc showcommands'
self.AddCommonStep(cmd, descriptor='make_webrtc')
class WebRTCAndroidNDKFactory(WebRTCFactory):
"""Sets up the Android NDK build."""
def __init__(self, build_status_oracle):
WebRTCFactory.__init__(self, build_status_oracle)
def EnableBuild(self):
self.AddSmartCleanStep()
self.AddGclientConfigStep()
self.AddGclientSyncStep(force_sync=True)
cmd = 'source ./build/android/envsetup.sh && gclient runhooks'
self.AddCommonStep(cmd, descriptor='gen_android_makefiles')
cmd = 'source ./build/android/envsetup.sh && make -j8'
self.AddCommonStep(cmd, descriptor='make')
class WebRTCChromeFactory(WebRTCFactory):
@ -487,9 +513,7 @@ class WebRTCLinuxFactory(WebRTCFactory):
for gyp_define in MEMORY_TOOLS_GYP_DEFINES:
self.gyp_params.append('-D' + gyp_define)
else:
self.AddCommonStep(['gclient', 'config', WEBRTC_SVN_LOCATION],
workdir=WEBRTC_BUILD_DIR,
descriptor='gclient_config')
self.AddGclientConfigStep()
self.AddGclientSyncStep(force_sync=False)
if chrome_os:
@ -656,9 +680,7 @@ class WebRTCMacFactory(WebRTCFactory):
else:
self.build_type = build_type
self.AddSmartCleanStep()
self.AddCommonStep(['gclient', 'config', WEBRTC_SVN_LOCATION],
workdir=WEBRTC_BUILD_DIR,
descriptor='gclient_config')
self.AddGclientConfigStep()
self.AddGclientSyncStep(force_sync=True)
if self.build_type == 'make' or self.build_type == 'both':
@ -741,9 +763,7 @@ class WebRTCWinFactory(WebRTCFactory):
# Now do the clean + build.
self.AddSmartCleanStep()
self.AddCommonStep(['gclient', 'config', WEBRTC_SVN_LOCATION],
descriptor='gclient_config',
workdir=WEBRTC_BUILD_DIR)
self.AddGclientConfigStep()
self.AddGclientSyncStep(force_sync=True)
if self.configuration == 'Debug' or self.configuration == 'both':

View File

@ -0,0 +1,16 @@
indexes:
# AUTOGENERATED
# This index.yaml is automatically updated whenever the dev_appserver
# detects that a new type of query is run. If you want to manage the
# index.yaml file manually, remove the above marker line (the line
# saying "# AUTOGENERATED"). If you want to manage some indexes
# manually, move them above the marker line. The index.yaml file is
# automatically uploaded to the admin console when you next deploy
# your application using appcfg.py.
- kind: CoverageData
properties:
- name: report_category
- name: date