1# Copyright 2016 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5 6# Recipe for uploading nanobench results. 7 8 9DEPS = [ 10 'recipe_engine/context', 11 'recipe_engine/file', 12 'recipe_engine/path', 13 'recipe_engine/properties', 14 'recipe_engine/step', 15 'recipe_engine/time', 16 'vars', 17] 18 19 20def RunSteps(api): 21 # Upload the nanobench results. 22 api.vars.setup() 23 24 now = api.time.utcnow() 25 src_path = api.path['start_dir'].join('perf') 26 with api.context(cwd=src_path): 27 results = api.file.glob_paths( 28 'find results', 29 src_path, 30 '*.json', 31 test_data=['nanobench_abc123.json']) 32 if len(results) != 1: # pragma: nocover 33 raise Exception('Unable to find nanobench or skpbench JSON file!') 34 35 src = results[0] 36 basename = api.path.basename(src) 37 gs_path = '/'.join(( 38 'nano-json-v1', str(now.year).zfill(4), 39 str(now.month).zfill(2), str(now.day).zfill(2), str(now.hour).zfill(2), 40 api.vars.builder_name)) 41 42 if api.vars.is_trybot: 43 gs_path = '/'.join(('trybot', gs_path, 44 str(api.vars.issue), str(api.vars.patchset))) 45 46 dst = '/'.join(( 47 'gs://%s' % api.properties['gs_bucket'], gs_path, basename)) 48 49 api.step( 50 'upload', 51 cmd=['gsutil', 'cp', '-z', 'json', src, dst], 52 infra_step=True) 53 54 55def GenTests(api): 56 builder = 'Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-All-Debug' 57 yield ( 58 api.test('normal_bot') + 59 api.properties(buildername=builder, 60 gs_bucket='skia-perf', 61 revision='abc123', 62 path_config='kitchen') 63 ) 64 65 yield ( 66 api.test('trybot') + 67 api.properties(buildername=builder, 68 gs_bucket='skia-perf', 69 revision='abc123', 70 path_config='kitchen') + 71 api.properties.tryserver( 72 buildername=builder, 73 gerrit_project='skia', 74 gerrit_url='https://skia-review.googlesource.com/', 75 ) 76 ) 77