| Index: buildbot/buildbot_run.py
|
| diff --git a/buildbot/buildbot_run.py b/buildbot/buildbot_run.py
|
| index 8ce215a4125424c6b882bb2eb3892081a731cb42..9a2b71f1b355cf6c9cde72f661c275b182ab88ef 100755
|
| --- a/buildbot/buildbot_run.py
|
| +++ b/buildbot/buildbot_run.py
|
| @@ -5,23 +5,15 @@
|
|
|
| """Argument-less script to select what to run on the buildbots."""
|
|
|
| -import filecmp
|
| import os
|
| import shutil
|
| import subprocess
|
| import sys
|
|
|
|
|
| -if sys.platform in ['win32', 'cygwin']:
|
| - EXE_SUFFIX = '.exe'
|
| -else:
|
| - EXE_SUFFIX = ''
|
| -
|
| -
|
| BUILDBOT_DIR = os.path.dirname(os.path.abspath(__file__))
|
| TRUNK_DIR = os.path.dirname(BUILDBOT_DIR)
|
| ROOT_DIR = os.path.dirname(TRUNK_DIR)
|
| -ANDROID_DIR = os.path.join(ROOT_DIR, 'android')
|
| CMAKE_DIR = os.path.join(ROOT_DIR, 'cmake')
|
| CMAKE_BIN_DIR = os.path.join(CMAKE_DIR, 'bin')
|
| OUT_DIR = os.path.join(TRUNK_DIR, 'out')
|
| @@ -69,95 +61,6 @@ def PrepareCmake():
|
| CallSubProcess( ['make', 'cmake'], cwd=CMAKE_DIR)
|
|
|
|
|
| -_ANDROID_SETUP = 'source build/envsetup.sh && lunch full-eng'
|
| -
|
| -
|
| -def PrepareAndroidTree():
|
| - """Prepare an Android tree to run 'android' format tests."""
|
| - if os.environ['BUILDBOT_CLOBBER'] == '1':
|
| - print '@@@BUILD_STEP Clobber Android checkout@@@'
|
| - shutil.rmtree(ANDROID_DIR)
|
| -
|
| - # (Re)create the directory so that the following steps will succeed.
|
| - if not os.path.isdir(ANDROID_DIR):
|
| - os.mkdir(ANDROID_DIR)
|
| -
|
| - # We use a manifest from the gyp project listing pinned revisions of AOSP to
|
| - # use, to ensure that we test against a stable target. This needs to be
|
| - # updated to pick up new build system changes sometimes, so we must test if
|
| - # it has changed.
|
| - manifest_filename = 'aosp_manifest.xml'
|
| - gyp_manifest = os.path.join(BUILDBOT_DIR, manifest_filename)
|
| - android_manifest = os.path.join(ANDROID_DIR, '.repo', 'manifests',
|
| - manifest_filename)
|
| - manifest_is_current = (os.path.isfile(android_manifest) and
|
| - filecmp.cmp(gyp_manifest, android_manifest))
|
| - if not manifest_is_current:
|
| - # It's safe to repeat these steps, so just do them again to make sure we are
|
| - # in a good state.
|
| - print '@@@BUILD_STEP Initialize Android checkout@@@'
|
| - CallSubProcess(
|
| - ['repo', 'init',
|
| - '-u', 'https://android.googlesource.com/platform/manifest',
|
| - '-b', 'master',
|
| - '-g', 'all,-notdefault,-device,-darwin,-mips,-x86'],
|
| - cwd=ANDROID_DIR)
|
| - shutil.copy(gyp_manifest, android_manifest)
|
| -
|
| - print '@@@BUILD_STEP Sync Android@@@'
|
| - CallSubProcess(['repo', 'sync', '-j4', '-m', manifest_filename],
|
| - cwd=ANDROID_DIR)
|
| -
|
| - # If we already built the system image successfully and didn't sync to a new
|
| - # version of the source, skip running the build again as it's expensive even
|
| - # when there's nothing to do.
|
| - system_img = os.path.join(ANDROID_DIR, 'out', 'target', 'product', 'generic',
|
| - 'system.img')
|
| - if manifest_is_current and os.path.isfile(system_img):
|
| - return
|
| -
|
| - print '@@@BUILD_STEP Build Android@@@'
|
| - CallSubProcess(
|
| - ['/bin/bash',
|
| - '-c', '%s && make -j4' % _ANDROID_SETUP],
|
| - cwd=ANDROID_DIR)
|
| -
|
| -
|
| -def StartAndroidEmulator():
|
| - """Start an android emulator from the built android tree."""
|
| - print '@@@BUILD_STEP Start Android emulator@@@'
|
| -
|
| - CallSubProcess(['/bin/bash', '-c',
|
| - '%s && adb kill-server ' % _ANDROID_SETUP],
|
| - cwd=ANDROID_DIR)
|
| -
|
| - # If taskset is available, use it to force adbd to run only on one core, as,
|
| - # sadly, it improves its reliability (see crbug.com/268450).
|
| - adbd_wrapper = ''
|
| - with open(os.devnull, 'w') as devnull_fd:
|
| - if subprocess.call(['which', 'taskset'], stdout=devnull_fd) == 0:
|
| - adbd_wrapper = 'taskset -c 0'
|
| - CallSubProcess(['/bin/bash', '-c',
|
| - '%s && %s adb start-server ' % (_ANDROID_SETUP, adbd_wrapper)],
|
| - cwd=ANDROID_DIR)
|
| -
|
| - subprocess.Popen(
|
| - ['/bin/bash', '-c',
|
| - '%s && emulator -no-window' % _ANDROID_SETUP],
|
| - cwd=ANDROID_DIR)
|
| - CallSubProcess(
|
| - ['/bin/bash', '-c',
|
| - '%s && adb wait-for-device' % _ANDROID_SETUP],
|
| - cwd=ANDROID_DIR)
|
| -
|
| -
|
| -def StopAndroidEmulator():
|
| - """Stop all android emulators."""
|
| - print '@@@BUILD_STEP Stop Android emulator@@@'
|
| - # If this fails, it's because there is no emulator running.
|
| - subprocess.call(['pkill', 'emulator.*'])
|
| -
|
| -
|
| def GypTestFormat(title, format=None, msvs_version=None, tests=[]):
|
| """Run the gyp tests for a given format, emitting annotator tags.
|
|
|
| @@ -183,15 +86,7 @@ def GypTestFormat(title, format=None, msvs_version=None, tests=[]):
|
| '--format', format,
|
| '--path', CMAKE_BIN_DIR,
|
| '--chdir', 'gyp'] + tests)
|
| - if format == 'android':
|
| - # gyptest needs the environment setup from envsetup/lunch in order to build
|
| - # using the 'android' backend, so this is done in a single shell.
|
| - retcode = subprocess.call(
|
| - ['/bin/bash',
|
| - '-c', '%s && cd %s && %s' % (_ANDROID_SETUP, ROOT_DIR, command)],
|
| - cwd=ANDROID_DIR, env=env)
|
| - else:
|
| - retcode = subprocess.call(command, cwd=ROOT_DIR, env=env, shell=True)
|
| + retcode = subprocess.call(command, cwd=ROOT_DIR, env=env, shell=True)
|
| if retcode:
|
| # Emit failure tag, and keep going.
|
| print '@@@STEP_FAILURE@@@'
|
| @@ -207,15 +102,7 @@ def GypBuild():
|
| print 'Done.'
|
|
|
| retcode = 0
|
| - # The Android gyp bot runs on linux so this must be tested first.
|
| - if os.environ['BUILDBOT_BUILDERNAME'] == 'gyp-android':
|
| - PrepareAndroidTree()
|
| - StartAndroidEmulator()
|
| - try:
|
| - retcode += GypTestFormat('android')
|
| - finally:
|
| - StopAndroidEmulator()
|
| - elif sys.platform.startswith('linux'):
|
| + if sys.platform.startswith('linux'):
|
| retcode += GypTestFormat('ninja')
|
| retcode += GypTestFormat('make')
|
| PrepareCmake()
|
|
|