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 buildstats results to Perf. 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 buildstats 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=['buildstats_abc123.json', 'buildstats_def.json']) 32 if not len(results): # pragma: nocover 33 raise Exception('Unable to find buildstats JSON file!') 34 35 for src in results: 36 basename = api.path.basename(src) 37 basename = api.properties['revision'] + '_' + basename 38 gs_path = '/'.join(( 39 'buildstats-json-v1', str(now.year).zfill(4), 40 str(now.month).zfill(2), str(now.day).zfill(2), str(now.hour).zfill(2), 41 api.vars.builder_name)) 42 43 if api.vars.is_trybot: 44 gs_path = '/'.join(('trybot', gs_path, 45 str(api.vars.issue), str(api.vars.patchset))) 46 47 dst = '/'.join(( 48 'gs://%s' % api.properties['gs_bucket'], gs_path, basename)) 49 50 api.step( 51 'upload %s' % src, 52 cmd=['gsutil', 'cp', '-z', 'json', src, dst], 53 infra_step=True) 54 55 56def GenTests(api): 57 builder = 'BuildStats-Debian10-EMCC-wasm-Release-PathKit' 58 yield ( 59 api.test('normal_bot') + 60 api.properties(buildername=builder, 61 gs_bucket='skia-perf', 62 revision='abc123', 63 path_config='kitchen') 64 ) 65 66 yield ( 67 api.test('trybot') + 68 api.properties.tryserver( 69 gerrit_project='skia', 70 gerrit_url='https://skia-review.googlesource.com/', 71 ) + 72 api.properties(buildername=builder, 73 gs_bucket='skia-perf', 74 revision='abc123', 75 path_config='kitchen') 76 ) 77