#!/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)