1cb93a386Sopenharmony_ci# Copyright 2016 The Chromium Authors. All rights reserved. 2cb93a386Sopenharmony_ci# Use of this source code is governed by a BSD-style license that can be 3cb93a386Sopenharmony_ci# found in the LICENSE file. 4cb93a386Sopenharmony_ci 5cb93a386Sopenharmony_ci 6cb93a386Sopenharmony_ci# Recipe module for Skia Swarming compile. 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ciPYTHON_VERSION_COMPATIBILITY = "PY2+3" 9cb93a386Sopenharmony_ci 10cb93a386Sopenharmony_ciDEPS = [ 11cb93a386Sopenharmony_ci 'build', 12cb93a386Sopenharmony_ci 'checkout', 13cb93a386Sopenharmony_ci 'recipe_engine/context', 14cb93a386Sopenharmony_ci 'recipe_engine/file', 15cb93a386Sopenharmony_ci 'recipe_engine/json', 16cb93a386Sopenharmony_ci 'recipe_engine/path', 17cb93a386Sopenharmony_ci 'recipe_engine/platform', 18cb93a386Sopenharmony_ci 'recipe_engine/properties', 19cb93a386Sopenharmony_ci 'recipe_engine/python', 20cb93a386Sopenharmony_ci 'recipe_engine/step', 21cb93a386Sopenharmony_ci 'run', 22cb93a386Sopenharmony_ci 'vars', 23cb93a386Sopenharmony_ci] 24cb93a386Sopenharmony_ci 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_cidef RunSteps(api): 27cb93a386Sopenharmony_ci api.vars.setup() 28cb93a386Sopenharmony_ci 29cb93a386Sopenharmony_ci # Check out code. 30cb93a386Sopenharmony_ci bot_update = True 31cb93a386Sopenharmony_ci checkout_root = api.checkout.default_checkout_root 32cb93a386Sopenharmony_ci checkout_chromium = False 33cb93a386Sopenharmony_ci checkout_flutter = False 34cb93a386Sopenharmony_ci flutter_android = False 35cb93a386Sopenharmony_ci 36cb93a386Sopenharmony_ci if 'NoDEPS' in api.properties['buildername']: 37cb93a386Sopenharmony_ci bot_update = False 38cb93a386Sopenharmony_ci checkout_root = api.path['start_dir'] 39cb93a386Sopenharmony_ci if 'CommandBuffer' in api.vars.builder_name: 40cb93a386Sopenharmony_ci checkout_chromium = True 41cb93a386Sopenharmony_ci if 'Flutter' in api.vars.builder_name: 42cb93a386Sopenharmony_ci checkout_root = checkout_root.join('flutter') 43cb93a386Sopenharmony_ci checkout_flutter = True 44cb93a386Sopenharmony_ci if 'Android' in api.vars.builder_name: 45cb93a386Sopenharmony_ci flutter_android = True 46cb93a386Sopenharmony_ci 47cb93a386Sopenharmony_ci if bot_update: 48cb93a386Sopenharmony_ci api.checkout.bot_update( 49cb93a386Sopenharmony_ci checkout_root=checkout_root, 50cb93a386Sopenharmony_ci checkout_chromium=checkout_chromium, 51cb93a386Sopenharmony_ci checkout_flutter=checkout_flutter, 52cb93a386Sopenharmony_ci flutter_android=flutter_android) 53cb93a386Sopenharmony_ci else: 54cb93a386Sopenharmony_ci api.checkout.git(checkout_root=checkout_root) 55cb93a386Sopenharmony_ci 56cb93a386Sopenharmony_ci api.file.ensure_directory('makedirs tmp_dir', api.vars.tmp_dir) 57cb93a386Sopenharmony_ci 58cb93a386Sopenharmony_ci out_dir = checkout_root.join( 59cb93a386Sopenharmony_ci 'skia', 'out', api.vars.builder_name, api.vars.configuration) 60cb93a386Sopenharmony_ci if 'Flutter' in api.vars.builder_name: 61cb93a386Sopenharmony_ci out_dir = checkout_root.join('src', 'out', 'android_release') 62cb93a386Sopenharmony_ci 63cb93a386Sopenharmony_ci try: 64cb93a386Sopenharmony_ci api.build(checkout_root=checkout_root, out_dir=out_dir) 65cb93a386Sopenharmony_ci 66cb93a386Sopenharmony_ci # TODO(borenet): Move this out of the try/finally. 67cb93a386Sopenharmony_ci dst = api.vars.swarming_out_dir 68cb93a386Sopenharmony_ci api.build.copy_build_products(out_dir=out_dir, dst=dst) 69cb93a386Sopenharmony_ci finally: 70cb93a386Sopenharmony_ci if 'Win' in api.vars.builder_cfg.get('os', ''): 71cb93a386Sopenharmony_ci api.python.inline( 72cb93a386Sopenharmony_ci name='cleanup', 73cb93a386Sopenharmony_ci program=''' 74cb93a386Sopenharmony_ci# [VPYTHON:BEGIN] 75cb93a386Sopenharmony_ci# wheel: < 76cb93a386Sopenharmony_ci# name: "infra/python/wheels/psutil/${vpython_platform}" 77cb93a386Sopenharmony_ci# version: "version:5.4.7" 78cb93a386Sopenharmony_ci# > 79cb93a386Sopenharmony_ci# [VPYTHON:END] 80cb93a386Sopenharmony_ci 81cb93a386Sopenharmony_ciimport psutil 82cb93a386Sopenharmony_cifor p in psutil.process_iter(): 83cb93a386Sopenharmony_ci try: 84cb93a386Sopenharmony_ci if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'): 85cb93a386Sopenharmony_ci p.kill() 86cb93a386Sopenharmony_ci except psutil._error.AccessDenied: 87cb93a386Sopenharmony_ci pass 88cb93a386Sopenharmony_ci''', 89cb93a386Sopenharmony_ci infra_step=True, 90cb93a386Sopenharmony_ci venv=True) 91cb93a386Sopenharmony_ci 92cb93a386Sopenharmony_ci api.run.check_failure() 93cb93a386Sopenharmony_ci 94cb93a386Sopenharmony_ci 95cb93a386Sopenharmony_ciTEST_BUILDERS = [ 96cb93a386Sopenharmony_ci 'Build-Debian10-Clang-arm-Release-Flutter_Android', 97cb93a386Sopenharmony_ci 'Build-Mac-Clang-x86_64-Debug-CommandBuffer', 98cb93a386Sopenharmony_ci 'Build-Win10-Clang-x86_64-Release-NoDEPS', 99cb93a386Sopenharmony_ci] 100cb93a386Sopenharmony_ci 101cb93a386Sopenharmony_ci 102cb93a386Sopenharmony_cidef GenTests(api): 103cb93a386Sopenharmony_ci for builder in TEST_BUILDERS: 104cb93a386Sopenharmony_ci test = ( 105cb93a386Sopenharmony_ci api.test(builder) + 106cb93a386Sopenharmony_ci api.properties(buildername=builder, 107cb93a386Sopenharmony_ci repository='https://skia.googlesource.com/skia.git', 108cb93a386Sopenharmony_ci revision='abc123', 109cb93a386Sopenharmony_ci path_config='kitchen', 110cb93a386Sopenharmony_ci swarm_out_dir='[SWARM_OUT_DIR]') + 111cb93a386Sopenharmony_ci api.path.exists( 112cb93a386Sopenharmony_ci api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt') 113cb93a386Sopenharmony_ci ) 114cb93a386Sopenharmony_ci ) 115cb93a386Sopenharmony_ci if 'Win' in builder: 116cb93a386Sopenharmony_ci test += api.platform('win', 64) 117cb93a386Sopenharmony_ci yield test 118