Index: infra/bots/recipes/upload_nano_results.py |
diff --git a/infra/bots/recipes/upload_nano_results.py b/infra/bots/recipes/upload_nano_results.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8cc39be693582c6b810559927a0094f282645b3b |
--- /dev/null |
+++ b/infra/bots/recipes/upload_nano_results.py |
@@ -0,0 +1,73 @@ |
+# Copyright 2016 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. |
+ |
+ |
+# Recipe for uploading nanobench results. |
+ |
+ |
+DEPS = [ |
+ 'build/file', |
+ 'recipe_engine/path', |
+ 'recipe_engine/properties', |
+ 'recipe_engine/step', |
+ 'recipe_engine/time', |
+] |
+ |
+ |
+def RunSteps(api): |
+ # Upload the nanobench resuls. |
+ builder_name = api.properties['buildername'] |
+ issue = str(api.properties.get('issue')) |
+ patchset = str(api.properties.get('patchset')) |
+ |
+ now = api.time.utcnow() |
+ |
+ src_path = api.path['cwd'].join( |
+ 'perfdata', builder_name, 'data') |
+ results = api.file.glob( |
+ 'find results', |
+ 'nanobench*.json', |
+ cwd=src_path, |
+ test_data=['nanobench_abc123.json'], |
+ infra_step=True) |
+ if len(results) != 1: # pragma: nocover |
+ raise Exception('Unable to find nanobench JSON file!') |
+ |
+ src = src_path.join(results[0]) |
+ basename = api.path.basename(src) |
+ gs_path = '/'.join(( |
+ 'nano-json-v1', str(now.year).zfill(4), |
+ str(now.month).zfill(2), str(now.day).zfill(2), str(now.hour).zfill(2), |
+ builder_name)) |
+ |
+ if builder_name.endswith('-Trybot'): |
+ if not (issue and patchset): # pragma: nocover |
+ raise Exception('issue and patchset properties are required for trybots.') |
+ gs_path = '/'.join(('trybot', gs_path, issue, patchset)) |
+ |
+ dst = '/'.join(('gs://skia-perf', gs_path, basename)) |
+ |
+ api.step('upload', |
+ cmd=['gsutil', 'cp', '-a', 'public-read', '-z', 'json', src, dst], |
+ infra_step=True) |
+ |
+ |
+def GenTests(api): |
+ builder = 'Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug' |
+ yield ( |
+ api.test('normal_bot') + |
+ api.properties(buildername=builder, |
+ revision='abc123', |
+ path_config='kitchen') |
+ ) |
+ |
+ builder = 'Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot' |
+ yield ( |
+ api.test('trybot') + |
+ api.properties(buildername=builder, |
+ revision='abc123', |
+ path_config='kitchen', |
+ issue='12345', |
+ patchset='1002') |
+ ) |