Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Unified Diff: infra/bots/assets/skp/create.py

Issue 2167763002: Add "skp" asset (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Backpedal: Don't get rid of old SKPs yet Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « infra/bots/assets/skp/common.py ('k') | infra/bots/assets/skp/create_and_upload.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: infra/bots/assets/skp/create.py
diff --git a/infra/bots/assets/skp/create.py b/infra/bots/assets/skp/create.py
new file mode 100755
index 0000000000000000000000000000000000000000..68df7f07c27762d143bd4f50c69d010cdbde7e9d
--- /dev/null
+++ b/infra/bots/assets/skp/create.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+#
+# Copyright 2016 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+"""Create the SKP asset."""
+
+
+import argparse
+import common
+import os
+import shutil
+import subprocess
+import utils
+
+
+SKIA_TOOLS = os.path.join(common.INFRA_BOTS_DIR, os.pardir, os.pardir, 'tools')
+
+
+def create_asset(chrome_src_path, browser_executable, target_dir):
+ """Create the asset."""
+ browser_executable = os.path.realpath(browser_executable)
+ chrome_src_path = os.path.realpath(chrome_src_path)
+ target_dir = os.path.realpath(target_dir)
+
+ if not os.path.exists(target_dir):
+ os.makedirs(target_dir)
+
+ with utils.tmp_dir():
+ if os.environ.get('CHROME_HEADLESS'):
+ # Start Xvfb if running on a bot.
+ try:
+ subprocess.Popen(['sudo', 'Xvfb', ':0', '-screen', '0', '1280x1024x24'])
+ except Exception:
+ # It is ok if the above command fails, it just means that DISPLAY=:0
+ # is already up.
+ pass
+
+ webpages_playback_cmd = [
+ 'python', os.path.join(SKIA_TOOLS, 'skp', 'webpages_playback.py'),
+ '--page_sets', 'all',
+ '--browser_executable', browser_executable,
+ '--non-interactive',
+ '--output_dir', os.getcwd(),
+ '--chrome_src_path', chrome_src_path,
+ ]
+ try:
+ subprocess.check_call(webpages_playback_cmd)
+ finally:
+ # Clean up any leftover browser instances. This can happen if there are
+ # telemetry crashes, processes are not always cleaned up appropriately by
+ # the webpagereplay and telemetry frameworks.
+ procs = subprocess.check_output(['ps', 'ax'])
+ for line in procs.splitlines():
+ if browser_executable in line:
+ pid = line.strip().split(' ')[0]
+ if pid != str(os.getpid()) and not 'python' in line:
+ try:
+ subprocess.check_call(['kill', '-9', pid])
+ except subprocess.CalledProcessError as e:
+ print e
+ else:
+ print 'Refusing to kill self.'
+ src = os.path.join(os.getcwd(), 'playback', 'skps')
+ for f in os.listdir(src):
+ if f.endswith('.skp'):
+ shutil.copyfile(os.path.join(src, f), os.path.join(target_dir, f))
+
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--target_dir', '-t', required=True)
+ parser.add_argument('--chrome_src_path', '-c', required=True)
+ parser.add_argument('--browser_executable', '-e', required=True)
+ args = parser.parse_args()
+ create_asset(args.chrome_src_path, args.browser_executable, args.target_dir)
+
+
+if __name__ == '__main__':
+ main()
« no previous file with comments | « infra/bots/assets/skp/common.py ('k') | infra/bots/assets/skp/create_and_upload.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698