Index: tools/bots/editor.py |
diff --git a/tools/bots/editor.py b/tools/bots/editor.py |
deleted file mode 100755 |
index c4a45bb54f48c97bf0633f16dbbf04f73c8e9323..0000000000000000000000000000000000000000 |
--- a/tools/bots/editor.py |
+++ /dev/null |
@@ -1,151 +0,0 @@ |
-#!/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 re |
-import sys |
- |
-import bot |
- |
-SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) |
-sys.path.append(os.path.join(SCRIPT_DIR, '..')) |
-import utils |
- |
- |
-GSUTIL = utils.GetBuildbotGSUtilPath() |
-GCS_DARTIUM_BUCKET = "gs://dartium-archive/continuous" |
-GCS_EDITOR_BUCKET = "gs://continuous-editor-archive" |
- |
-def GetBuildDirectory(mode, arch): |
- configuration_dir = mode + arch.upper() |
- build_directory_dict = { |
- 'linux2' : os.path.join('out', configuration_dir), |
- 'darwin' : os.path.join('xcodebuild', configuration_dir), |
- 'win32' : os.path.join('build', configuration_dir), |
- } |
- if sys.platform == 'darwin': |
- # TODO(kustermann,ricow): Maybe we're able to get rid of this in the future. |
- # We use ninja on bots which use out/ (i.e. what linux2 does) instead of |
- # xcodebuild/ |
- if (os.path.exists(build_directory_dict['linux2']) and |
- os.path.isdir(build_directory_dict['linux2'])): |
- return build_directory_dict['linux2'] |
- return build_directory_dict[sys.platform] |
- |
-def GetEditorDirectory(mode, arch): |
- return os.path.join(GetBuildDirectory(mode, arch), 'editor') |
- |
-def GetDartSdkDirectory(mode, arch): |
- return os.path.join(GetBuildDirectory(mode, arch), 'dart-sdk') |
- |
-def GetEditorExecutable(mode, arch): |
- editor_dir = GetEditorDirectory(mode, arch) |
- if sys.platform == 'darwin': |
- executable = os.path.join('DartEditor.app', 'Contents', 'MacOS', |
- 'DartEditor') |
- elif sys.platform == 'win32': |
- executable = 'DartEditor.exe' |
- elif sys.platform == 'linux2': |
- executable = 'DartEditor' |
- else: |
- raise Exception('Unknown platform %s' % sys.platform) |
- return os.path.join(editor_dir, executable) |
- |
-def RunProcess(args): |
- if sys.platform == 'linux2': |
- args = ['xvfb-run', '-a'] + args |
- print 'Running: %s' % (' '.join(args)) |
- sys.stdout.flush() |
- bot.RunProcess(args) |
- |
-def DownloadDartium(temp_dir, zip_file): |
- """Returns the filename of the unpacked archive""" |
- local_path = os.path.join(temp_dir, zip_file) |
- uri = "%s/%s" % (GCS_DARTIUM_BUCKET, zip_file) |
- RunProcess([GSUTIL, 'cp', uri, local_path]) |
- RunProcess(['unzip', local_path, '-d', temp_dir]) |
- for filename in os.listdir(temp_dir): |
- match = re.search('^dartium-.*-inc-([0-9]+)\.0$', filename) |
- if match: |
- return os.path.join(temp_dir, match.group(0)) |
- raise Exception("Couldn't find dartium archive") |
- |
-def UploadInstaller(dart_editor_dmg, directory): |
- directory = directory % {'revision' : utils.GetSVNRevision()} |
- uri = '%s/%s' % (GCS_EDITOR_BUCKET, directory) |
- RunProcess([GSUTIL, 'cp', dart_editor_dmg, uri]) |
- RunProcess([GSUTIL, 'setacl', 'public-read', uri]) |
- |
-def CreateAndUploadMacInstaller(arch): |
- dart_icns = os.path.join( |
- 'editor', 'tools', 'plugins', 'com.google.dart.tools.deploy', |
- 'icons', 'dart.icns') |
- mac_build_bundle_py = os.path.join('tools', 'mac_build_editor_bundle.sh') |
- mac_build_dmg_py = os.path.join('tools', 'mac_build_editor_dmg.sh') |
- editor_dir = GetEditorDirectory('Release', arch) |
- dart_sdk = GetDartSdkDirectory('Release', arch) |
- with utils.TempDir('eclipse') as temp_dir: |
- # Get dartium |
- dartium_directory = DownloadDartium(temp_dir, 'dartium-mac.zip') |
- dartium_bundle_dir = os.path.join(dartium_directory, |
- 'Chromium.app') |
- |
- # Build the editor bundle |
- darteditor_bundle_dir = os.path.join(temp_dir, 'DartEditor.app') |
- args = [mac_build_bundle_py, darteditor_bundle_dir, editor_dir, |
- dart_sdk, dartium_bundle_dir, dart_icns] |
- RunProcess(args) |
- |
- # Build the dmg installer from the editor bundle |
- dart_editor_dmg = os.path.join(temp_dir, 'DartEditor.dmg') |
- args = [mac_build_dmg_py, dart_editor_dmg, darteditor_bundle_dir, |
- dart_icns, 'Dart Editor'] |
- RunProcess(args) |
- |
- # Upload the dmg installer |
- UploadInstaller(dart_editor_dmg, 'dart-editor-mac-%(revision)s.dmg') |
- |
-def main(): |
- build_py = os.path.join('tools', 'build.py') |
- |
- architectures = ['ia32', 'x64'] |
- test_architectures = ['x64'] |
- if sys.platform == 'win32': |
- # Our windows bots pull in only a 32 bit JVM. |
- test_architectures = ['ia32'] |
- |
- for arch in architectures: |
- with bot.BuildStep('Build Editor %s' % arch): |
- args = [sys.executable, build_py, |
- '-mrelease', '--arch=%s' % arch, 'editor', 'create_sdk'] |
- RunProcess(args) |
- |
- # before we run the editor, suppress any 'restore windows' dialogs |
- if sys.platform == 'darwin': |
- bot.RunProcess(['defaults', 'write', 'org.eclipse.eclipse.savedState', |
- 'NSQuitAlwaysKeepsWindows', '-bool', 'false']) |
- |
- for arch in test_architectures: |
- editor_executable = GetEditorExecutable('Release', arch) |
- with bot.BuildStep('Test Editor %s' % arch): |
- with utils.TempDir('eclipse') as temp_dir: |
- args = [editor_executable, '--test', '--auto-exit', '-data', temp_dir] |
- RunProcess(args) |
- |
- # TODO: Permissions need to be clarified |
- for arch in test_architectures: |
- with bot.BuildStep('Build Installer %s' % arch): |
- if sys.platform == 'darwin': |
- CreateAndUploadMacInstaller(arch) |
- else: |
- print ("We currently don't build installers for sys.platform=%s" |
- % sys.platform) |
- return 0 |
- |
-if __name__ == '__main__': |
- try: |
- sys.exit(main()) |
- except OSError as e: |
- sys.exit(e.errno) |