9278f10795
Also adds GalaxyS20 to the mix, which wasn't running skpbench previously. Also removes the skpbench logic to fail if we don't recognize the hardware or have specific scripts for it. We don't have time to reverse engineer every new piece of hardware we want to run on and the general android script is quite helpful already. Bug: skia:10419 Change-Id: I0e139cdd4bc2e7ca0e2e14c715d319664fa8c949 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319143 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
467 lines
16 KiB
JSON
467 lines
16 KiB
JSON
[
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"ensure-directory",
|
|
"--mode",
|
|
"0777",
|
|
"[START_DIR]/tmp"
|
|
],
|
|
"infra_step": true,
|
|
"name": "makedirs tmp_dir"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
|
|
],
|
|
"name": "get swarming bot id",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"mkdir",
|
|
"-p",
|
|
"/sdcard/revenge_of_the_skiabot/resources"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Get skp VERSION",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@VERSION@42@@@",
|
|
"@@@STEP_LOG_END@VERSION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"42",
|
|
"[START_DIR]/tmp/SKP_VERSION"
|
|
],
|
|
"infra_step": true,
|
|
"name": "write SKP_VERSION",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@SKP_VERSION@42@@@",
|
|
"@@@STEP_LOG_END@SKP_VERSION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"cat",
|
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n",
|
|
"/usr/bin/adb.1.0.35",
|
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
|
],
|
|
"env": {
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ output = e.output@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print('======')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print(output)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print('======')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('%s exists despite being deleted' % path)@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n",
|
|
"/usr/bin/adb.1.0.35",
|
|
"/sdcard/revenge_of_the_skiabot/skps"
|
|
],
|
|
"env": {
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ output = e.output@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print('======')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print(output)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print('======')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise Exception('%s exists despite being deleted' % path)@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"shell",
|
|
"mkdir",
|
|
"-p",
|
|
"/sdcard/revenge_of_the_skiabot/skps"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
|
},
|
|
{
|
|
"cmd": [],
|
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"listdir",
|
|
"[START_DIR]/skp",
|
|
"--recursive"
|
|
],
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps.list [START_DIR]/skp",
|
|
"~followup_annotations": [
|
|
"@@@STEP_NEST_LEVEL@1@@@",
|
|
"@@@STEP_LOG_LINE@listdir@[START_DIR]/skp/.file3@@@",
|
|
"@@@STEP_LOG_LINE@listdir@[START_DIR]/skp/.ignore/file4@@@",
|
|
"@@@STEP_LOG_LINE@listdir@[START_DIR]/skp/file1@@@",
|
|
"@@@STEP_LOG_LINE@listdir@[START_DIR]/skp/subdir/file2@@@",
|
|
"@@@STEP_LOG_END@listdir@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"push",
|
|
"[START_DIR]/skp/.file3",
|
|
"/sdcard/revenge_of_the_skiabot/skps/.file3"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps.push [START_DIR]/skp/.file3",
|
|
"~followup_annotations": [
|
|
"@@@STEP_NEST_LEVEL@1@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"push",
|
|
"[START_DIR]/skp/file1",
|
|
"/sdcard/revenge_of_the_skiabot/skps/file1"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps.push [START_DIR]/skp/file1",
|
|
"~followup_annotations": [
|
|
"@@@STEP_NEST_LEVEL@1@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"push",
|
|
"[START_DIR]/skp/subdir/file2",
|
|
"/sdcard/revenge_of_the_skiabot/skps/subdir/file2"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps.push [START_DIR]/skp/subdir/file2",
|
|
"~followup_annotations": [
|
|
"@@@STEP_NEST_LEVEL@1@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"push",
|
|
"[START_DIR]/tmp/SKP_VERSION",
|
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"ensure-directory",
|
|
"--mode",
|
|
"0777",
|
|
"[START_DIR]/[SWARM_OUT_DIR]"
|
|
],
|
|
"infra_step": true,
|
|
"name": "makedirs perf_dir"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"adb.1.0.35",
|
|
"push",
|
|
"[START_DIR]/build/skpbench",
|
|
"/data/local/tmp/"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "push skpbench"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"[START_DIR]/skia/tools/skpbench/skpbench.py",
|
|
"/data/local/tmp/skpbench",
|
|
"--resultsfile",
|
|
"[START_DIR]/[SWARM_OUT_DIR]/table",
|
|
"--config",
|
|
"gles",
|
|
"--internalSamples",
|
|
"4",
|
|
"-v5",
|
|
"--adb",
|
|
"--adb_binary",
|
|
"adb.1.0.35",
|
|
"--pr",
|
|
"ccpr",
|
|
"--cc",
|
|
"--nocache",
|
|
"/sdcard/revenge_of_the_skiabot/skps/desk_*svg.skp",
|
|
"/sdcard/revenge_of_the_skiabot/skps/desk_chalkboard.skp"
|
|
],
|
|
"env": {
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"name": "skpbench"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
|
|
],
|
|
"name": "get swarming task id",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"[START_DIR]/skia/tools/skpbench/skiaperf.py",
|
|
"[START_DIR]/[SWARM_OUT_DIR]/table",
|
|
"--properties",
|
|
"gitHash",
|
|
"abc123",
|
|
"swarming_bot_id",
|
|
"skia-bot-123",
|
|
"swarming_task_id",
|
|
"123456",
|
|
"--outfile",
|
|
"[START_DIR]/[SWARM_OUT_DIR]/skpbench_abc123_1337000001.json",
|
|
"--key",
|
|
"arch",
|
|
"arm64",
|
|
"compiler",
|
|
"Clang",
|
|
"cpu_or_gpu",
|
|
"GPU",
|
|
"cpu_or_gpu_value",
|
|
"Adreno530",
|
|
"extra_config",
|
|
"Android_CCPR_Skpbench",
|
|
"model",
|
|
"Pixel",
|
|
"os",
|
|
"Android",
|
|
"test_filter",
|
|
"All"
|
|
],
|
|
"env": {
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"name": "Parse skpbench output into Perf json"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print line\n",
|
|
"[START_DIR]/build"
|
|
],
|
|
"env": {
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "dump log",
|
|
"timeout": 300,
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"/usr/bin/adb.1.0.35",
|
|
"kill-server"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "kill adb server"
|
|
},
|
|
{
|
|
"name": "$result"
|
|
}
|
|
] |