mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 08:24:39 +00:00
![ricow@google.com](/assets/img/avatar_default.png)
A lot of old stuff that we no longer need. R=whesse@google.com BUG= Review URL: https://codereview.chromium.org//1129383004 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45732 260f80e4-7a28-3924-810f-c04153c831b5
107 lines
3 KiB
Python
Executable file
107 lines
3 KiB
Python
Executable file
#!/usr/bin/python
|
|
# Copyright (c) 2011, 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.
|
|
|
|
# Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
"""Dart client buildbot steps
|
|
|
|
Calls a script in tools/bots whose name is based on the name of the bot.
|
|
|
|
"""
|
|
|
|
import imp
|
|
import os
|
|
import re
|
|
import socket
|
|
import subprocess
|
|
import sys
|
|
|
|
BUILDER_NAME = 'BUILDBOT_BUILDERNAME'
|
|
BUILDER_CLOBBER = 'BUILDBOT_CLOBBER'
|
|
|
|
def GetName():
|
|
"""Returns the name of the bot.
|
|
"""
|
|
name = None
|
|
# Populate via builder environment variables.
|
|
name = os.environ.get(BUILDER_NAME)
|
|
|
|
# Fall back if not on builder.
|
|
if not name:
|
|
name = socket.gethostname().split('.')[0]
|
|
return name
|
|
|
|
def ProcessBot(name, target, custom_env=None):
|
|
'''
|
|
Build and test the named bot target (compiler, android, pub). We look for
|
|
the supporting script in tools/bots/ to run the tests and build.
|
|
'''
|
|
print 'Process%s' % target.capitalize()
|
|
has_shell = False
|
|
environment = custom_env or os.environ
|
|
if '-win' in name:
|
|
# In Windows we need to run in the shell, so that we have all the
|
|
# environment variables available.
|
|
has_shell = True
|
|
return subprocess.call([sys.executable,
|
|
os.path.join('tools', 'bots', target + '.py')],
|
|
env=environment, shell=has_shell)
|
|
|
|
def ClobberBuilder():
|
|
""" Clobber the builder before we do the build.
|
|
"""
|
|
cmd = [sys.executable,
|
|
'./tools/clean_output_directory.py']
|
|
print 'Clobbering %s' % (' '.join(cmd))
|
|
return subprocess.call(cmd)
|
|
|
|
def GetShouldClobber():
|
|
return os.environ.get(BUILDER_CLOBBER) == "1"
|
|
|
|
def main():
|
|
if len(sys.argv) == 0:
|
|
print 'Script pathname not known, giving up.'
|
|
return 1
|
|
|
|
scriptdir = os.path.dirname(sys.argv[0])
|
|
# Get at the top-level directory. This script is in client/tools
|
|
os.chdir(os.path.abspath(os.path.join(scriptdir, os.pardir, os.pardir)))
|
|
|
|
if GetShouldClobber():
|
|
print '@@@BUILD_STEP Clobber@@@'
|
|
status = ClobberBuilder()
|
|
if status != 0:
|
|
print '@@@STEP_FAILURE@@@'
|
|
return status
|
|
|
|
name = GetName()
|
|
if name.startswith('pub-'):
|
|
status = ProcessBot(name, 'pub')
|
|
elif name.startswith('vm-android'):
|
|
status = ProcessBot(name, 'android')
|
|
elif name.startswith('dart-sdk'):
|
|
status = ProcessBot(name, 'dart_sdk')
|
|
elif name.startswith('cross') or name.startswith('target'):
|
|
status = ProcessBot(name, 'cross-vm')
|
|
elif name.startswith('linux-distribution-support'):
|
|
status = ProcessBot(name, 'linux_distribution_support')
|
|
elif name.startswith('version-checker'):
|
|
status = ProcessBot(name, 'version_checker')
|
|
elif name.startswith('dart2js-dump-info'):
|
|
status = ProcessBot(name, 'dart2js_dump_info')
|
|
else:
|
|
status = ProcessBot(name, 'compiler')
|
|
|
|
if status:
|
|
print '@@@STEP_FAILURE@@@'
|
|
|
|
return status
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|