1[ 2 { 3 "cmd": [ 4 "adb", 5 "shell", 6 "mkdir", 7 "-p", 8 "/sdcard/revenge_of_the_skiabot/resources" 9 ], 10 "cwd": "[START_DIR]/skia", 11 "env": { 12 "BUILDTYPE": "Debug", 13 "CHROME_HEADLESS": "1", 14 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 15 "SKIA_OUT": "[START_DIR]/out" 16 }, 17 "infra_step": true, 18 "name": "mkdir /sdcard/revenge_of_the_skiabot/resources" 19 }, 20 { 21 "cmd": [ 22 "python", 23 "-u", 24 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n", 25 "[START_DIR]/skia/resources", 26 "/sdcard/revenge_of_the_skiabot/resources" 27 ], 28 "env": { 29 "BUILDTYPE": "Debug", 30 "CHROME_HEADLESS": "1", 31 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 32 "SKIA_OUT": "[START_DIR]/out" 33 }, 34 "infra_step": true, 35 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources", 36 "~followup_annotations": [ 37 "step returned non-zero exit code: 1", 38 "@@@STEP_LOG_LINE@python.inline@@@@", 39 "@@@STEP_LOG_LINE@python.inline@import os@@@", 40 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 41 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 42 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@", 43 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", 44 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@", 45 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@", 46 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@", 47 "@@@STEP_LOG_LINE@python.inline@ continue@@@", 48 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@", 49 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@", 50 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", 51 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@", 52 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@", 53 "@@@STEP_LOG_END@python.inline@@@", 54 "@@@STEP_EXCEPTION@@@" 55 ] 56 }, 57 { 58 "cmd": [ 59 "python", 60 "-u", 61 "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', '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 sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n", 62 "[START_DIR]/out/Debug" 63 ], 64 "env": { 65 "BUILDTYPE": "Debug", 66 "CHROME_HEADLESS": "1", 67 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 68 "SKIA_OUT": "[START_DIR]/out" 69 }, 70 "infra_step": true, 71 "name": "dump log", 72 "~followup_annotations": [ 73 "@@@STEP_LOG_LINE@python.inline@@@@", 74 "@@@STEP_LOG_LINE@python.inline@import os@@@", 75 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 76 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 77 "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", 78 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@", 79 "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", 80 "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", 81 "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", 82 "@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@", 83 "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", 84 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", 85 "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", 86 "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", 87 "@@@STEP_LOG_LINE@python.inline@ print line@@@", 88 "@@@STEP_LOG_END@python.inline@@@" 89 ] 90 }, 91 { 92 "cmd": [ 93 "adb", 94 "shell", 95 "reboot", 96 "-p" 97 ], 98 "cwd": "[START_DIR]/skia", 99 "env": { 100 "BUILDTYPE": "Debug", 101 "CHROME_HEADLESS": "1", 102 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 103 "SKIA_OUT": "[START_DIR]/out" 104 }, 105 "infra_step": true, 106 "name": "shut down device to quarantine bot" 107 }, 108 { 109 "cmd": [ 110 "adb", 111 "kill-server" 112 ], 113 "cwd": "[START_DIR]/skia", 114 "env": { 115 "BUILDTYPE": "Debug", 116 "CHROME_HEADLESS": "1", 117 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 118 "SKIA_OUT": "[START_DIR]/out" 119 }, 120 "infra_step": true, 121 "name": "kill adb server" 122 }, 123 { 124 "name": "$result", 125 "reason": "Infra Failure: Step('push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources') returned 1", 126 "recipe_result": null, 127 "status_code": 1 128 } 129]