1*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2018 The Chromium Authors. All rights reserved. 2*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 4*c8dee2aaSAndroid Build Coastguard Worker 5*c8dee2aaSAndroid Build Coastguard Worker# Recipe which runs the Canvaskit tests using docker 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard WorkerPYTHON_VERSION_COMPATIBILITY = "PY3" 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard WorkerDEPS = [ 10*c8dee2aaSAndroid Build Coastguard Worker 'checkout', 11*c8dee2aaSAndroid Build Coastguard Worker 'docker', 12*c8dee2aaSAndroid Build Coastguard Worker 'env', 13*c8dee2aaSAndroid Build Coastguard Worker 'flavor', 14*c8dee2aaSAndroid Build Coastguard Worker 'infra', 15*c8dee2aaSAndroid Build Coastguard Worker 'recipe_engine/file', 16*c8dee2aaSAndroid Build Coastguard Worker 'recipe_engine/path', 17*c8dee2aaSAndroid Build Coastguard Worker 'recipe_engine/properties', 18*c8dee2aaSAndroid Build Coastguard Worker 'recipe_engine/step', 19*c8dee2aaSAndroid Build Coastguard Worker 'gold_upload', 20*c8dee2aaSAndroid Build Coastguard Worker 'run', 21*c8dee2aaSAndroid Build Coastguard Worker 'vars', 22*c8dee2aaSAndroid Build Coastguard Worker] 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard WorkerDOCKER_IMAGE = 'gcr.io/skia-public/gold-karma-chrome-tests:87.0.4280.88_v2' 26*c8dee2aaSAndroid Build Coastguard WorkerINNER_KARMA_SCRIPT = 'skia/infra/canvaskit/test_canvaskit.sh' 27*c8dee2aaSAndroid Build Coastguard Worker 28*c8dee2aaSAndroid Build Coastguard Workerdef RunSteps(api): 29*c8dee2aaSAndroid Build Coastguard Worker api.vars.setup() 30*c8dee2aaSAndroid Build Coastguard Worker api.flavor.setup('dm') 31*c8dee2aaSAndroid Build Coastguard Worker checkout_root = api.path.start_dir 32*c8dee2aaSAndroid Build Coastguard Worker out_dir = api.vars.swarming_out_dir 33*c8dee2aaSAndroid Build Coastguard Worker 34*c8dee2aaSAndroid Build Coastguard Worker # The karma script is configured to look in ./build/ for 35*c8dee2aaSAndroid Build Coastguard Worker # the test files to load, so we must copy them there (see Set up for docker). 36*c8dee2aaSAndroid Build Coastguard Worker copy_dest = checkout_root.joinpath('skia', 'modules', 'canvaskit', 37*c8dee2aaSAndroid Build Coastguard Worker 'build') 38*c8dee2aaSAndroid Build Coastguard Worker api.file.ensure_directory('mkdirs copy_dest', copy_dest, mode=0o777) 39*c8dee2aaSAndroid Build Coastguard Worker base_dir = api.vars.build_dir 40*c8dee2aaSAndroid Build Coastguard Worker copies = [ 41*c8dee2aaSAndroid Build Coastguard Worker { 42*c8dee2aaSAndroid Build Coastguard Worker 'src': base_dir.joinpath('canvaskit.js'), 43*c8dee2aaSAndroid Build Coastguard Worker 'dst': copy_dest.joinpath('canvaskit.js'), 44*c8dee2aaSAndroid Build Coastguard Worker }, 45*c8dee2aaSAndroid Build Coastguard Worker { 46*c8dee2aaSAndroid Build Coastguard Worker 'src': base_dir.joinpath('canvaskit.wasm'), 47*c8dee2aaSAndroid Build Coastguard Worker 'dst': copy_dest.joinpath('canvaskit.wasm'), 48*c8dee2aaSAndroid Build Coastguard Worker }, 49*c8dee2aaSAndroid Build Coastguard Worker ] 50*c8dee2aaSAndroid Build Coastguard Worker recursive_read = [checkout_root.joinpath('skia')] 51*c8dee2aaSAndroid Build Coastguard Worker 52*c8dee2aaSAndroid Build Coastguard Worker args = [ 53*c8dee2aaSAndroid Build Coastguard Worker '--builder', api.vars.builder_name, 54*c8dee2aaSAndroid Build Coastguard Worker '--git_hash', api.properties['revision'], 55*c8dee2aaSAndroid Build Coastguard Worker '--buildbucket_build_id', api.properties.get('buildbucket_build_id', ''), 56*c8dee2aaSAndroid Build Coastguard Worker '--browser', 'Chrome', 57*c8dee2aaSAndroid Build Coastguard Worker '--config', api.vars.configuration, 58*c8dee2aaSAndroid Build Coastguard Worker '--source_type', 'canvaskit', 59*c8dee2aaSAndroid Build Coastguard Worker ] 60*c8dee2aaSAndroid Build Coastguard Worker if api.vars.is_trybot: 61*c8dee2aaSAndroid Build Coastguard Worker args.extend([ 62*c8dee2aaSAndroid Build Coastguard Worker '--issue', api.vars.issue, 63*c8dee2aaSAndroid Build Coastguard Worker '--patchset', api.vars.patchset, 64*c8dee2aaSAndroid Build Coastguard Worker ]) 65*c8dee2aaSAndroid Build Coastguard Worker 66*c8dee2aaSAndroid Build Coastguard Worker api.docker.run( 67*c8dee2aaSAndroid Build Coastguard Worker name='Test CanvasKit with Docker', 68*c8dee2aaSAndroid Build Coastguard Worker docker_image=DOCKER_IMAGE, 69*c8dee2aaSAndroid Build Coastguard Worker src_dir=checkout_root, 70*c8dee2aaSAndroid Build Coastguard Worker out_dir=out_dir, 71*c8dee2aaSAndroid Build Coastguard Worker script=checkout_root.joinpath(INNER_KARMA_SCRIPT), 72*c8dee2aaSAndroid Build Coastguard Worker args=args, 73*c8dee2aaSAndroid Build Coastguard Worker docker_args=None, 74*c8dee2aaSAndroid Build Coastguard Worker copies=copies, 75*c8dee2aaSAndroid Build Coastguard Worker recursive_read=recursive_read, 76*c8dee2aaSAndroid Build Coastguard Worker attempts=3, 77*c8dee2aaSAndroid Build Coastguard Worker ) 78*c8dee2aaSAndroid Build Coastguard Worker 79*c8dee2aaSAndroid Build Coastguard Worker api.gold_upload.upload() 80*c8dee2aaSAndroid Build Coastguard Worker 81*c8dee2aaSAndroid Build Coastguard Workerdef GenTests(api): 82*c8dee2aaSAndroid Build Coastguard Worker yield ( 83*c8dee2aaSAndroid Build Coastguard Worker api.test('Test-Debian10-EMCC-GCE-GPU-WEBGL1-wasm-Debug-All-CanvasKit') + 84*c8dee2aaSAndroid Build Coastguard Worker api.properties(buildername=('Test-Debian10-EMCC-GCE-GPU-WEBGL1' 85*c8dee2aaSAndroid Build Coastguard Worker '-wasm-Debug-All-CanvasKit'), 86*c8dee2aaSAndroid Build Coastguard Worker repository='https://skia.googlesource.com/skia.git', 87*c8dee2aaSAndroid Build Coastguard Worker revision='abc123', 88*c8dee2aaSAndroid Build Coastguard Worker gs_bucket='skia-infra-gm', 89*c8dee2aaSAndroid Build Coastguard Worker path_config='kitchen', 90*c8dee2aaSAndroid Build Coastguard Worker swarm_out_dir='[SWARM_OUT_DIR]') 91*c8dee2aaSAndroid Build Coastguard Worker ) 92*c8dee2aaSAndroid Build Coastguard Worker 93*c8dee2aaSAndroid Build Coastguard Worker yield ( 94*c8dee2aaSAndroid Build Coastguard Worker api.test('canvaskit_trybot') + 95*c8dee2aaSAndroid Build Coastguard Worker api.properties(buildername=('Test-Debian10-EMCC-GCE-CPU-AVX2' 96*c8dee2aaSAndroid Build Coastguard Worker '-wasm-Debug-All-CanvasKit'), 97*c8dee2aaSAndroid Build Coastguard Worker repository='https://skia.googlesource.com/skia.git', 98*c8dee2aaSAndroid Build Coastguard Worker revision='abc123', 99*c8dee2aaSAndroid Build Coastguard Worker gs_bucket='skia-infra-gm', 100*c8dee2aaSAndroid Build Coastguard Worker path_config='kitchen', 101*c8dee2aaSAndroid Build Coastguard Worker swarm_out_dir='[SWARM_OUT_DIR]', 102*c8dee2aaSAndroid Build Coastguard Worker patch_ref='89/456789/12', 103*c8dee2aaSAndroid Build Coastguard Worker patch_repo='https://skia.googlesource.com/skia.git', 104*c8dee2aaSAndroid Build Coastguard Worker patch_storage='gerrit', 105*c8dee2aaSAndroid Build Coastguard Worker patch_set=7, 106*c8dee2aaSAndroid Build Coastguard Worker patch_issue=1234, 107*c8dee2aaSAndroid Build Coastguard Worker gerrit_project='skia', 108*c8dee2aaSAndroid Build Coastguard Worker gerrit_url='https://skia-review.googlesource.com/') 109*c8dee2aaSAndroid Build Coastguard Worker ) 110