| Index: tools/bots/editor.py
|
| diff --git a/tools/bots/editor.py b/tools/bots/editor.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..43403da42813caf0c5944f9212257b67c7c7dd0f
|
| --- /dev/null
|
| +++ b/tools/bots/editor.py
|
| @@ -0,0 +1,60 @@
|
| +#!/usr/bin/python
|
| +# Copyright (c) 2013, 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.
|
| +
|
| +import os
|
| +import sys
|
| +
|
| +import bot
|
| +
|
| +def GetEditorExecutable(mode, arch):
|
| + configuration_dir = mode + arch.upper()
|
| + linux_path = os.path.join('out', configuration_dir, 'editor')
|
| + win_path = os.path.join('build', configuration_dir, 'editor')
|
| + mac_path = os.path.join('xcodebuild', configuration_dir, 'editor')
|
| +
|
| + if sys.platform == 'darwin':
|
| + executable = os.path.join('DartEditor.app', 'Contents', 'MacOS',
|
| + 'DartEditor')
|
| + # TODO(kustermann,ricow): Maybe we're able to get rid of this in the future.
|
| + # We use ninja on bots which use out/ instead of xcodebuild/
|
| + if os.path.exists(linux_path) and os.path.isdir(linux_path):
|
| + return os.path.join(linux_path, executable)
|
| + else:
|
| + return os.path.join(mac_path, executable)
|
| + elif sys.platform == 'win32':
|
| + return os.path.join(win_path, 'DartEditor.exe')
|
| + elif sys.platform == 'linux2':
|
| + return os.path.join(linux_path, 'DartEditor')
|
| + else:
|
| + raise Exception('Unknown platform %s' % sys.platform)
|
| +
|
| +
|
| +def main():
|
| + build_py = os.path.join('tools', 'build.py')
|
| + architectures = ['ia32', 'x64']
|
| + test_architectures = ['x64']
|
| +
|
| + for arch in architectures:
|
| + with bot.BuildStep('Build Editor %s' % arch):
|
| + args = [sys.executable, build_py,
|
| + '-mrelease', '--arch=%s' % arch, 'editor']
|
| + print 'Running: %s' % (' '.join(args))
|
| + sys.stdout.flush()
|
| + bot.RunProcess(args)
|
| +
|
| + for arch in test_architectures:
|
| + editor_executable = GetEditorExecutable('Release', arch)
|
| + with bot.BuildStep('Test Editor %s' % arch):
|
| + args = [editor_executable, '--test', '--auto-exit']
|
| + print 'Running: %s' % (' '.join(args))
|
| + sys.stdout.flush()
|
| + bot.RunProcess(args)
|
| + return 0
|
| +
|
| +if __name__ == '__main__':
|
| + try:
|
| + sys.exit(main())
|
| + except OSError as e:
|
| + sys.exit(e.errno)
|
|
|