blob: dd0fe3fed176be5615868c3c7bf13c15a6974728 [file] [log] [blame]
#!/usr/bin/python
# Copyright (c) 2015, 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.
"""
Buildbot steps for stress testing analysis engine
"""
import os
import shutil
import sys
import bot
import bot_utils
utils = bot_utils.GetUtils()
def ServicesConfig(name, is_buildbot):
"""Returns info for the current buildbot.
We only run this bot on linux, so all of this is just hard coded.
"""
return bot.BuildInfo('none', 'none', 'release', 'linux')
def Run(args):
print "Running: %s" % ' '.join(args)
sys.stdout.flush()
bot.RunProcess(args)
def ServicesSteps(build_info):
build_root = utils.GetBuildRoot('linux')
sdk_bin = utils.GetBuildSdkBin('linux', mode='release', arch='ia32')
dart_services = os.path.join('third_party', 'dart-services')
dart_services_copy = os.path.join(build_root, 'dart-services')
with bot.BuildStep('Create copy of dart_services'):
print 'Removing existing copy of dart_services'
shutil.rmtree(dart_services_copy, ignore_errors=True)
args = ['cp', '-R', dart_services, dart_services_copy]
Run(args)
with bot.BuildStep('Fixing pubspec file'):
pubspec = os.path.join(dart_services_copy, 'pubspec.yaml')
# TODO(lukechurch): Actually provide the name of the alternative pubspec
testing_pubspec = os.path.join(dart_services_copy, 'pubspec.foobar.yaml')
print 'Fixing pubspec up for stress testing'
# TODO(lukechurch): change to do the mv of the testing pubspec
Run(['ls', pubspec])
with bot.BuildStep('Run pub'):
print 'Print running pub'
pub = os.path.join(sdk_bin, 'pub')
with utils.ChangedWorkingDirectory(dart_services_copy):
args = [pub, 'get']
with bot.BuildStep('Stress testing'):
# Consider doing something more useful here.
args = ['ls', 'third_party']
Run(args)
if __name__ == '__main__':
bot.RunBot(ServicesConfig, ServicesSteps)