blob: cb54e608e35b9c0ad5ecc85f0f3fae604463baae [file] [log] [blame]
[
{
"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": [
"vpython",
"-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
"glob",
"[START_DIR]/skp",
"*"
],
"infra_step": true,
"name": "ls [START_DIR]/skp/*",
"~followup_annotations": [
"@@@STEP_LOG_LINE@glob@[START_DIR]/skp/bar.jpg@@@",
"@@@STEP_LOG_LINE@glob@[START_DIR]/skp/foo.png@@@",
"@@@STEP_LOG_END@glob@@@"
]
},
{
"cmd": [
"/usr/bin/adb.1.0.35",
"push",
"[START_DIR]/skp/bar.jpg",
"[START_DIR]/skp/foo.png",
"/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": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps"
},
{
"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",
"vk",
"--internalSamples",
"4",
"-v5",
"--adb",
"--adb_binary",
"adb.1.0.35",
"/sdcard/revenge_of_the_skiabot/skps"
],
"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",
"issue",
"456789",
"patchset",
"12",
"patch_storage",
"gerrit",
"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",
"Adreno540",
"extra_config",
"Android_Vulkan_Skpbench",
"model",
"Pixel2XL",
"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"
}
]