blob: 9ee7d813731ca49002c62f2265970384dacd0ced [file] [log] [blame] [edit]
#!/usr/bin/python
# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
"""
Android buildbot steps.
"""
import os
import os.path
import re
import sys
import bot
ANDROID_BUILDER = r'vm-android-(linux|mac|win)'
def AndroidConfig(name, is_buildbot):
"""Returns info for the current buildbot based on the name of the builder.
Currently, this is just:
- mode: always "release" (for now)
- system: "linux", "mac", or "win"
"""
android_pattern = re.match(ANDROID_BUILDER, name)
if not android_pattern:
return None
system = android_pattern.group(1)
if system == 'win': system = 'windows'
return bot.BuildInfo('none', 'vm', 'release', system, checked=True)
def AndroidSteps(build_info):
# TODO(efortuna): Here's where we'll run tests.
#bot.RunTest('android', build_info, ['android'])
pass
def BuildAndroid(build_info):
"""
Builds the android target.
- build_info: the buildInfo object, containing information about what sort of
build and test to be run.
"""
with bot.BuildStep('Build Android'):
# TODO(vsm): A temporary hack until we figure out why incremental builds are
# broken on Android.
if os.path.exists('./out/lastHooksTargetOS.txt'):
os.remove('./out/lastHooksTargetOS.txt')
targets = ['runtime']
args = [
sys.executable, './tools/build.py', '--arch=' + build_info.arch,
'--mode=' + build_info.mode, '--os=android'
] + targets
print 'Building Android: %s' % (' '.join(args))
bot.RunProcess(args)
if __name__ == '__main__':
bot.RunBot(AndroidConfig, AndroidSteps, build_step=BuildAndroid)