• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[
2  {
3    "cmd": [
4      "adb",
5      "reboot"
6    ],
7    "cwd": "[START_DIR]/skia",
8    "env": {
9      "BUILDTYPE": "Debug",
10      "CHROME_HEADLESS": "1",
11      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
12      "SKIA_OUT": "[START_DIR]/out"
13    },
14    "infra_step": true,
15    "name": "rebooting device"
16  },
17  {
18    "cmd": [
19      "python",
20      "-u",
21      "\nimport subprocess\nimport sys\nimport time\n\nkicks = 0\nwhile True:\n\n  times = 0\n  while times < 30:\n    print 'Waiting for the device to be connected and ready.'\n    try:\n      times += 1\n      output = subprocess.check_output(['adb', 'shell',\n                                        'getprop', 'sys.boot_completed'])\n      if '1' in output:\n        print 'Connected'\n        sys.exit(0)\n    except subprocess.CalledProcessError:\n      # no device connected/authorized yet\n      pass\n    time.sleep(5)\n  if kicks >= 3:\n    break\n  print 'Giving the device a \"kick\" by trying to reboot it.'\n  kicks += 1\n  print subprocess.check_output(['adb', 'reboot'])\n\nprint 'Timed out waiting for device'\nsys.exit(1)\n"
22    ],
23    "env": {
24      "BUILDTYPE": "Debug",
25      "CHROME_HEADLESS": "1",
26      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
27      "SKIA_OUT": "[START_DIR]/out"
28    },
29    "infra_step": true,
30    "name": "wait for device",
31    "~followup_annotations": [
32      "@@@STEP_LOG_LINE@python.inline@@@@",
33      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
34      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
35      "@@@STEP_LOG_LINE@python.inline@import time@@@",
36      "@@@STEP_LOG_LINE@python.inline@@@@",
37      "@@@STEP_LOG_LINE@python.inline@kicks = 0@@@",
38      "@@@STEP_LOG_LINE@python.inline@while True:@@@",
39      "@@@STEP_LOG_LINE@python.inline@@@@",
40      "@@@STEP_LOG_LINE@python.inline@  times = 0@@@",
41      "@@@STEP_LOG_LINE@python.inline@  while times < 30:@@@",
42      "@@@STEP_LOG_LINE@python.inline@    print 'Waiting for the device to be connected and ready.'@@@",
43      "@@@STEP_LOG_LINE@python.inline@    try:@@@",
44      "@@@STEP_LOG_LINE@python.inline@      times += 1@@@",
45      "@@@STEP_LOG_LINE@python.inline@      output = subprocess.check_output(['adb', 'shell',@@@",
46      "@@@STEP_LOG_LINE@python.inline@                                        'getprop', 'sys.boot_completed'])@@@",
47      "@@@STEP_LOG_LINE@python.inline@      if '1' in output:@@@",
48      "@@@STEP_LOG_LINE@python.inline@        print 'Connected'@@@",
49      "@@@STEP_LOG_LINE@python.inline@        sys.exit(0)@@@",
50      "@@@STEP_LOG_LINE@python.inline@    except subprocess.CalledProcessError:@@@",
51      "@@@STEP_LOG_LINE@python.inline@      # no device connected/authorized yet@@@",
52      "@@@STEP_LOG_LINE@python.inline@      pass@@@",
53      "@@@STEP_LOG_LINE@python.inline@    time.sleep(5)@@@",
54      "@@@STEP_LOG_LINE@python.inline@  if kicks >= 3:@@@",
55      "@@@STEP_LOG_LINE@python.inline@    break@@@",
56      "@@@STEP_LOG_LINE@python.inline@  print 'Giving the device a \"kick\" by trying to reboot it.'@@@",
57      "@@@STEP_LOG_LINE@python.inline@  kicks += 1@@@",
58      "@@@STEP_LOG_LINE@python.inline@  print subprocess.check_output(['adb', 'reboot'])@@@",
59      "@@@STEP_LOG_LINE@python.inline@@@@",
60      "@@@STEP_LOG_LINE@python.inline@print 'Timed out waiting for device'@@@",
61      "@@@STEP_LOG_LINE@python.inline@sys.exit(1)@@@",
62      "@@@STEP_LOG_END@python.inline@@@"
63    ]
64  },
65  {
66    "cmd": [
67      "adb",
68      "shell",
69      "mkdir",
70      "-p",
71      "/sdcard/revenge_of_the_skiabot/resources"
72    ],
73    "cwd": "[START_DIR]/skia",
74    "env": {
75      "BUILDTYPE": "Debug",
76      "CHROME_HEADLESS": "1",
77      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
78      "SKIA_OUT": "[START_DIR]/out"
79    },
80    "infra_step": true,
81    "name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
82  },
83  {
84    "cmd": [
85      "python",
86      "-u",
87      "\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",
88      "[START_DIR]/skia/resources",
89      "/sdcard/revenge_of_the_skiabot/resources"
90    ],
91    "env": {
92      "BUILDTYPE": "Debug",
93      "CHROME_HEADLESS": "1",
94      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
95      "SKIA_OUT": "[START_DIR]/out"
96    },
97    "infra_step": true,
98    "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
99    "~followup_annotations": [
100      "step returned non-zero exit code: 1",
101      "@@@STEP_LOG_LINE@python.inline@@@@",
102      "@@@STEP_LOG_LINE@python.inline@import os@@@",
103      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
104      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
105      "@@@STEP_LOG_LINE@python.inline@host   = sys.argv[1]@@@",
106      "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
107      "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
108      "@@@STEP_LOG_LINE@python.inline@  p = os.path.relpath(d, host)@@@",
109      "@@@STEP_LOG_LINE@python.inline@  if p != '.' and p.startswith('.'):@@@",
110      "@@@STEP_LOG_LINE@python.inline@    continue@@@",
111      "@@@STEP_LOG_LINE@python.inline@  for f in fs:@@@",
112      "@@@STEP_LOG_LINE@python.inline@    print os.path.join(p,f)@@@",
113      "@@@STEP_LOG_LINE@python.inline@    subprocess.check_call(['adb', 'push',@@@",
114      "@@@STEP_LOG_LINE@python.inline@                           os.path.realpath(os.path.join(host, p, f)),@@@",
115      "@@@STEP_LOG_LINE@python.inline@                           os.path.join(device, p, f)])@@@",
116      "@@@STEP_LOG_END@python.inline@@@",
117      "@@@STEP_EXCEPTION@@@"
118    ]
119  },
120  {
121    "cmd": [
122      "python",
123      "-u",
124      "\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",
125      "[START_DIR]/out/Debug"
126    ],
127    "env": {
128      "BUILDTYPE": "Debug",
129      "CHROME_HEADLESS": "1",
130      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
131      "SKIA_OUT": "[START_DIR]/out"
132    },
133    "infra_step": true,
134    "name": "dump log",
135    "~followup_annotations": [
136      "@@@STEP_LOG_LINE@python.inline@@@@",
137      "@@@STEP_LOG_LINE@python.inline@import os@@@",
138      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
139      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
140      "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
141      "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
142      "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
143      "@@@STEP_LOG_LINE@python.inline@  tokens = line.split()@@@",
144      "@@@STEP_LOG_LINE@python.inline@  if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
145      "@@@STEP_LOG_LINE@python.inline@    addr, path = tokens[-2:]@@@",
146      "@@@STEP_LOG_LINE@python.inline@    local = os.path.join(out, os.path.basename(path))@@@",
147      "@@@STEP_LOG_LINE@python.inline@    if os.path.exists(local):@@@",
148      "@@@STEP_LOG_LINE@python.inline@      sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
149      "@@@STEP_LOG_LINE@python.inline@      line = line.replace(addr, addr + ' ' + sym.strip())@@@",
150      "@@@STEP_LOG_LINE@python.inline@  print line@@@",
151      "@@@STEP_LOG_END@python.inline@@@"
152    ]
153  },
154  {
155    "cmd": [
156      "adb",
157      "shell",
158      "reboot",
159      "-p"
160    ],
161    "cwd": "[START_DIR]/skia",
162    "env": {
163      "BUILDTYPE": "Debug",
164      "CHROME_HEADLESS": "1",
165      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
166      "SKIA_OUT": "[START_DIR]/out"
167    },
168    "infra_step": true,
169    "name": "shut down device to quarantine bot"
170  },
171  {
172    "cmd": [
173      "adb",
174      "kill-server"
175    ],
176    "cwd": "[START_DIR]/skia",
177    "env": {
178      "BUILDTYPE": "Debug",
179      "CHROME_HEADLESS": "1",
180      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
181      "SKIA_OUT": "[START_DIR]/out"
182    },
183    "infra_step": true,
184    "name": "kill adb server"
185  },
186  {
187    "name": "$result",
188    "reason": "Infra Failure: Step('push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources') returned 1",
189    "recipe_result": null,
190    "status_code": 1
191  }
192]