blob: a9c04d9b1b7cce909252019e5331f4d49ff1a058 [file] [log] [blame]
Eric Borenb82fdc72017-04-19 13:36:00 -04001[
2 {
3 "cmd": [
4 "python",
5 "-u",
6 "[START_DIR]/skia/bin/fetch-gn"
7 ],
8 "cwd": "[START_DIR]/skia",
9 "env": {
10 "BUILDTYPE": "Debug",
11 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -070012 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -040013 "SKIA_OUT": "[START_DIR]/out"
14 },
15 "infra_step": true,
16 "name": "fetch-gn"
17 },
18 {
19 "cmd": [
20 "[START_DIR]/skia/bin/gn",
21 "gen",
22 "[START_DIR]/out/Debug",
23 "--args=extra_cflags=[\"-O1\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
24 ],
25 "cwd": "[START_DIR]/skia",
26 "env": {
27 "BUILDTYPE": "Debug",
28 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -070029 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -040030 "SKIA_OUT": "[START_DIR]/out"
31 },
32 "name": "gn gen"
33 },
34 {
35 "cmd": [
36 "ninja",
Mike Klein7a13d872017-11-06 09:28:59 -050037 "-k",
38 "0",
Eric Borenb82fdc72017-04-19 13:36:00 -040039 "-C",
40 "[START_DIR]/out/Debug"
41 ],
42 "cwd": "[START_DIR]/skia",
43 "env": {
44 "BUILDTYPE": "Debug",
45 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -070046 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -040047 "SKIA_OUT": "[START_DIR]/out"
48 },
49 "name": "ninja"
50 },
51 {
52 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -050053 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -040054 "push",
55 "file.txt",
56 "file.txt"
57 ],
58 "cwd": "[START_DIR]/skia",
59 "env": {
60 "BUILDTYPE": "Debug",
61 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -070062 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -040063 "SKIA_OUT": "[START_DIR]/out"
64 },
65 "infra_step": true,
66 "name": "push file.txt file.txt"
67 },
68 {
69 "cmd": [
70 "python",
71 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -040072 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
73 "--json-output",
74 "/path/to/tmp/json",
Eric Borenb82fdc72017-04-19 13:36:00 -040075 "rmtree",
76 "results_dir"
77 ],
Eric Borenb82fdc72017-04-19 13:36:00 -040078 "infra_step": true,
79 "name": "rmtree results_dir"
80 },
81 {
82 "cmd": [
83 "python",
84 "-u",
Robert Iannucci8cd50412017-07-07 14:36:58 -070085 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
86 "--json-output",
87 "/path/to/tmp/json",
88 "ensure-directory",
89 "--mode",
90 "0777",
91 "results_dir"
Eric Borenb82fdc72017-04-19 13:36:00 -040092 ],
93 "infra_step": true,
Robert Iannucci8cd50412017-07-07 14:36:58 -070094 "name": "makedirs results_dir"
Eric Borenb82fdc72017-04-19 13:36:00 -040095 },
96 {
97 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -050098 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -040099 "shell",
100 "rm",
101 "-rf",
102 "device_results_dir"
103 ],
104 "cwd": "[START_DIR]/skia",
105 "env": {
106 "BUILDTYPE": "Debug",
107 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700108 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400109 "SKIA_OUT": "[START_DIR]/out"
110 },
111 "infra_step": true,
112 "name": "rm device_results_dir"
113 },
114 {
115 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500116 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400117 "shell",
118 "mkdir",
119 "-p",
120 "device_results_dir"
121 ],
122 "cwd": "[START_DIR]/skia",
123 "env": {
124 "BUILDTYPE": "Debug",
125 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700126 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400127 "SKIA_OUT": "[START_DIR]/out"
128 },
129 "infra_step": true,
130 "name": "mkdir device_results_dir"
131 },
132 {
133 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500134 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400135 "shell",
136 "mkdir",
137 "-p",
138 "/sdcard/revenge_of_the_skiabot/resources"
139 ],
140 "cwd": "[START_DIR]/skia",
141 "env": {
142 "BUILDTYPE": "Debug",
143 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700144 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400145 "SKIA_OUT": "[START_DIR]/out"
146 },
147 "infra_step": true,
148 "name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
149 },
150 {
151 "cmd": [
152 "python",
153 "-u",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500154 "\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(['/usr/bin/adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400155 "[START_DIR]/skia/resources",
156 "/sdcard/revenge_of_the_skiabot/resources"
157 ],
158 "env": {
159 "BUILDTYPE": "Debug",
160 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700161 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400162 "SKIA_OUT": "[START_DIR]/out"
163 },
164 "infra_step": true,
165 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
166 "~followup_annotations": [
167 "@@@STEP_LOG_LINE@python.inline@@@@",
168 "@@@STEP_LOG_LINE@python.inline@import os@@@",
169 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
170 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
171 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
172 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
173 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
174 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
175 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
176 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
177 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
178 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500179 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400180 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
181 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
182 "@@@STEP_LOG_END@python.inline@@@"
183 ]
184 },
185 {
186 "cmd": [
187 "python",
188 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400189 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
190 "--json-output",
191 "/path/to/tmp/json",
192 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400193 "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
194 "/path/to/tmp/"
195 ],
196 "infra_step": true,
197 "name": "Get downloaded SKP VERSION"
198 },
199 {
200 "cmd": [
201 "python",
202 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400203 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
204 "--json-output",
205 "/path/to/tmp/json",
206 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400207 "42",
208 "[START_DIR]/tmp/SKP_VERSION"
209 ],
210 "infra_step": true,
211 "name": "write SKP_VERSION"
212 },
213 {
214 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500215 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400216 "shell",
217 "cat",
218 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
219 ],
220 "cwd": "[START_DIR]/skia",
221 "env": {
222 "BUILDTYPE": "Debug",
223 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700224 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400225 "SKIA_OUT": "[START_DIR]/out"
226 },
227 "infra_step": true,
228 "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
229 "stdout": "/path/to/tmp/"
230 },
231 {
232 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500233 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400234 "shell",
235 "rm",
236 "-f",
237 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
238 ],
239 "cwd": "[START_DIR]/skia",
240 "env": {
241 "BUILDTYPE": "Debug",
242 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700243 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400244 "SKIA_OUT": "[START_DIR]/out"
245 },
246 "infra_step": true,
247 "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
248 },
249 {
250 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500251 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400252 "shell",
253 "rm",
254 "-rf",
255 "/sdcard/revenge_of_the_skiabot/skps"
256 ],
257 "cwd": "[START_DIR]/skia",
258 "env": {
259 "BUILDTYPE": "Debug",
260 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700261 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400262 "SKIA_OUT": "[START_DIR]/out"
263 },
264 "infra_step": true,
265 "name": "rm /sdcard/revenge_of_the_skiabot/skps"
266 },
267 {
268 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500269 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400270 "shell",
271 "mkdir",
272 "-p",
273 "/sdcard/revenge_of_the_skiabot/skps"
274 ],
275 "cwd": "[START_DIR]/skia",
276 "env": {
277 "BUILDTYPE": "Debug",
278 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700279 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400280 "SKIA_OUT": "[START_DIR]/out"
281 },
282 "infra_step": true,
283 "name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
284 },
285 {
286 "cmd": [
287 "python",
288 "-u",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500289 "\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(['/usr/bin/adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400290 "[START_DIR]/skp",
291 "/sdcard/revenge_of_the_skiabot/skps"
292 ],
293 "env": {
294 "BUILDTYPE": "Debug",
295 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700296 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400297 "SKIA_OUT": "[START_DIR]/out"
298 },
299 "infra_step": true,
300 "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
301 "~followup_annotations": [
302 "@@@STEP_LOG_LINE@python.inline@@@@",
303 "@@@STEP_LOG_LINE@python.inline@import os@@@",
304 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
305 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
306 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
307 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
308 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
309 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
310 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
311 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
312 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
313 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500314 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400315 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
316 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
317 "@@@STEP_LOG_END@python.inline@@@"
318 ]
319 },
320 {
321 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500322 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400323 "push",
324 "[START_DIR]/tmp/SKP_VERSION",
325 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
326 ],
327 "cwd": "[START_DIR]/skia",
328 "env": {
329 "BUILDTYPE": "Debug",
330 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700331 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400332 "SKIA_OUT": "[START_DIR]/out"
333 },
334 "infra_step": true,
335 "name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
336 },
337 {
338 "cmd": [
339 "python",
340 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400341 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
342 "--json-output",
343 "/path/to/tmp/json",
344 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400345 "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
346 "/path/to/tmp/"
347 ],
348 "infra_step": true,
349 "name": "Get downloaded skimage VERSION"
350 },
351 {
352 "cmd": [
353 "python",
354 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400355 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
356 "--json-output",
357 "/path/to/tmp/json",
358 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400359 "42",
360 "[START_DIR]/tmp/SK_IMAGE_VERSION"
361 ],
362 "infra_step": true,
363 "name": "write SK_IMAGE_VERSION"
364 },
365 {
366 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500367 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400368 "shell",
369 "cat",
370 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
371 ],
372 "cwd": "[START_DIR]/skia",
373 "env": {
374 "BUILDTYPE": "Debug",
375 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700376 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400377 "SKIA_OUT": "[START_DIR]/out"
378 },
379 "infra_step": true,
380 "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
381 "stdout": "/path/to/tmp/"
382 },
383 {
384 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500385 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400386 "shell",
387 "rm",
388 "-f",
389 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
390 ],
391 "cwd": "[START_DIR]/skia",
392 "env": {
393 "BUILDTYPE": "Debug",
394 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700395 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400396 "SKIA_OUT": "[START_DIR]/out"
397 },
398 "infra_step": true,
399 "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
400 },
401 {
402 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500403 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400404 "shell",
405 "rm",
406 "-rf",
407 "/sdcard/revenge_of_the_skiabot/images"
408 ],
409 "cwd": "[START_DIR]/skia",
410 "env": {
411 "BUILDTYPE": "Debug",
412 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700413 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400414 "SKIA_OUT": "[START_DIR]/out"
415 },
416 "infra_step": true,
417 "name": "rm /sdcard/revenge_of_the_skiabot/images"
418 },
419 {
420 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500421 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400422 "shell",
423 "mkdir",
424 "-p",
425 "/sdcard/revenge_of_the_skiabot/images"
426 ],
427 "cwd": "[START_DIR]/skia",
428 "env": {
429 "BUILDTYPE": "Debug",
430 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700431 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400432 "SKIA_OUT": "[START_DIR]/out"
433 },
434 "infra_step": true,
435 "name": "mkdir /sdcard/revenge_of_the_skiabot/images"
436 },
437 {
438 "cmd": [
439 "python",
440 "-u",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500441 "\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(['/usr/bin/adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400442 "[START_DIR]/skimage",
443 "/sdcard/revenge_of_the_skiabot/images"
444 ],
445 "env": {
446 "BUILDTYPE": "Debug",
447 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700448 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400449 "SKIA_OUT": "[START_DIR]/out"
450 },
451 "infra_step": true,
452 "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
453 "~followup_annotations": [
454 "@@@STEP_LOG_LINE@python.inline@@@@",
455 "@@@STEP_LOG_LINE@python.inline@import os@@@",
456 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
457 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
458 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
459 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
460 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
461 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
462 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
463 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
464 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
465 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500466 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400467 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
468 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
469 "@@@STEP_LOG_END@python.inline@@@"
470 ]
471 },
472 {
473 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500474 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400475 "push",
476 "[START_DIR]/tmp/SK_IMAGE_VERSION",
477 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
478 ],
479 "cwd": "[START_DIR]/skia",
480 "env": {
481 "BUILDTYPE": "Debug",
482 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700483 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400484 "SKIA_OUT": "[START_DIR]/out"
485 },
486 "infra_step": true,
487 "name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
488 },
489 {
490 "cmd": [
491 "python",
492 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400493 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
494 "--json-output",
495 "/path/to/tmp/json",
496 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400497 "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
498 "/path/to/tmp/"
499 ],
500 "infra_step": true,
501 "name": "Get downloaded SVG VERSION"
502 },
503 {
504 "cmd": [
505 "python",
506 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400507 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
508 "--json-output",
509 "/path/to/tmp/json",
510 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400511 "42",
512 "[START_DIR]/tmp/SVG_VERSION"
513 ],
514 "infra_step": true,
515 "name": "write SVG_VERSION"
516 },
517 {
518 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500519 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400520 "shell",
521 "cat",
522 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
523 ],
524 "cwd": "[START_DIR]/skia",
525 "env": {
526 "BUILDTYPE": "Debug",
527 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700528 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400529 "SKIA_OUT": "[START_DIR]/out"
530 },
531 "infra_step": true,
532 "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
533 "stdout": "/path/to/tmp/"
534 },
535 {
536 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500537 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400538 "shell",
539 "rm",
540 "-f",
541 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
542 ],
543 "cwd": "[START_DIR]/skia",
544 "env": {
545 "BUILDTYPE": "Debug",
546 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700547 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400548 "SKIA_OUT": "[START_DIR]/out"
549 },
550 "infra_step": true,
551 "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
552 },
553 {
554 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500555 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400556 "shell",
557 "rm",
558 "-rf",
559 "/sdcard/revenge_of_the_skiabot/svgs"
560 ],
561 "cwd": "[START_DIR]/skia",
562 "env": {
563 "BUILDTYPE": "Debug",
564 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700565 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400566 "SKIA_OUT": "[START_DIR]/out"
567 },
568 "infra_step": true,
569 "name": "rm /sdcard/revenge_of_the_skiabot/svgs"
570 },
571 {
572 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500573 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400574 "shell",
575 "mkdir",
576 "-p",
577 "/sdcard/revenge_of_the_skiabot/svgs"
578 ],
579 "cwd": "[START_DIR]/skia",
580 "env": {
581 "BUILDTYPE": "Debug",
582 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700583 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400584 "SKIA_OUT": "[START_DIR]/out"
585 },
586 "infra_step": true,
587 "name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
588 },
589 {
590 "cmd": [
591 "python",
592 "-u",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500593 "\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(['/usr/bin/adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400594 "[START_DIR]/svg",
595 "/sdcard/revenge_of_the_skiabot/svgs"
596 ],
597 "env": {
598 "BUILDTYPE": "Debug",
599 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700600 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400601 "SKIA_OUT": "[START_DIR]/out"
602 },
603 "infra_step": true,
604 "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
605 "~followup_annotations": [
606 "@@@STEP_LOG_LINE@python.inline@@@@",
607 "@@@STEP_LOG_LINE@python.inline@import os@@@",
608 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
609 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
610 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
611 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
612 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
613 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
614 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
615 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
616 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
617 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500618 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400619 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
620 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
621 "@@@STEP_LOG_END@python.inline@@@"
622 ]
623 },
624 {
625 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500626 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400627 "push",
628 "[START_DIR]/tmp/SVG_VERSION",
629 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
630 ],
631 "cwd": "[START_DIR]/skia",
632 "env": {
633 "BUILDTYPE": "Debug",
634 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700635 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400636 "SKIA_OUT": "[START_DIR]/out"
637 },
638 "infra_step": true,
639 "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
640 },
641 {
642 "cmd": [
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500643 "python",
644 "-u",
Kevin Lubick17634922017-12-12 08:14:19 -0500645 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500646 "/usr/bin/adb.1.0.35",
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500647 "0",
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500648 "userspace"
649 ],
650 "env": {
651 "BUILDTYPE": "Debug",
652 "CHROME_HEADLESS": "1",
653 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
654 "SKIA_OUT": "[START_DIR]/out"
655 },
656 "infra_step": true,
Kevin Lubicke3b01302017-12-12 15:57:20 -0500657 "name": "Set CPU 0's governor to userspace",
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500658 "timeout": 30,
659 "~followup_annotations": [
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500660 "@@@STEP_LOG_LINE@python.inline@@@@",
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500661 "@@@STEP_LOG_LINE@python.inline@import os@@@",
662 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
663 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
664 "@@@STEP_LOG_LINE@python.inline@import time@@@",
665 "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
666 "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@",
667 "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@",
668 "@@@STEP_LOG_LINE@python.inline@@@@",
669 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
670 "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
671 "@@@STEP_LOG_LINE@python.inline@print log@@@",
672 "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
673 "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
674 "@@@STEP_LOG_LINE@python.inline@@@@",
675 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@",
676 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@",
677 "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@",
678 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@",
Kevin Lubick17634922017-12-12 08:14:19 -0500679 "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@",
680 "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@",
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500681 "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@",
682 "@@@STEP_LOG_END@python.inline@@@"
683 ]
684 },
685 {
686 "cmd": [
687 "python",
688 "-u",
689 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint 'Setting frequency to %d' % freq\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n",
690 "/usr/bin/adb.1.0.35",
691 "0.6",
Kevin Lubicke3b01302017-12-12 15:57:20 -0500692 "0"
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500693 ],
694 "env": {
695 "BUILDTYPE": "Debug",
696 "CHROME_HEADLESS": "1",
697 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
698 "SKIA_OUT": "[START_DIR]/out"
699 },
700 "infra_step": true,
Kevin Lubicke3b01302017-12-12 15:57:20 -0500701 "name": "Scale CPU 0 to 0.600000",
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500702 "timeout": 30,
703 "~followup_annotations": [
704 "@@@STEP_LOG_LINE@python.inline@@@@",
705 "@@@STEP_LOG_LINE@python.inline@import os@@@",
706 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
707 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
708 "@@@STEP_LOG_LINE@python.inline@import time@@@",
709 "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
710 "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@",
711 "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@",
712 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
713 "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
714 "@@@STEP_LOG_LINE@python.inline@print log@@@",
715 "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
716 "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
717 "@@@STEP_LOG_LINE@python.inline@@@@",
718 "@@@STEP_LOG_LINE@python.inline@root = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu@@@",
719 "@@@STEP_LOG_LINE@python.inline@@@@",
720 "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@",
721 "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@",
722 "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@",
723 "@@@STEP_LOG_LINE@python.inline@@@@",
724 "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@",
725 "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@",
726 "@@@STEP_LOG_LINE@python.inline@ available_freqs = sorted(@@@",
727 "@@@STEP_LOG_LINE@python.inline@ int(i) for i in available_freqs.strip().split())@@@",
728 "@@@STEP_LOG_LINE@python.inline@else:@@@",
729 "@@@STEP_LOG_LINE@python.inline@ raise Exception('Could not get list of available frequencies: %s' %@@@",
730 "@@@STEP_LOG_LINE@python.inline@ available_freqs)@@@",
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500731 "@@@STEP_LOG_LINE@python.inline@@@@",
732 "@@@STEP_LOG_LINE@python.inline@maxfreq = available_freqs[-1]@@@",
733 "@@@STEP_LOG_LINE@python.inline@target = int(round(maxfreq * target_percent))@@@",
734 "@@@STEP_LOG_LINE@python.inline@freq = maxfreq@@@",
735 "@@@STEP_LOG_LINE@python.inline@for f in reversed(available_freqs):@@@",
736 "@@@STEP_LOG_LINE@python.inline@ if f <= target:@@@",
737 "@@@STEP_LOG_LINE@python.inline@ freq = f@@@",
738 "@@@STEP_LOG_LINE@python.inline@ break@@@",
739 "@@@STEP_LOG_LINE@python.inline@@@@",
740 "@@@STEP_LOG_LINE@python.inline@print 'Setting frequency to %d' % freq@@@",
741 "@@@STEP_LOG_LINE@python.inline@@@@",
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500742 "@@@STEP_LOG_LINE@python.inline@# If scaling_max_freq is lower than our attempted setting, it won't take.@@@",
Kevin Lubick7f5d5d22017-12-08 10:26:56 -0500743 "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@",
744 "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@",
745 "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@",
Kevin Lubick4c6bde22017-12-05 15:54:19 -0500746 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@",
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500747 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@",
Kevin Lubick1c8092ac2017-11-30 08:35:29 -0500748 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500749 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@",
Kevin Lubick7f5d5d22017-12-08 10:26:56 -0500750 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500751 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@",
Kevin Lubick1c8092ac2017-11-30 08:35:29 -0500752 "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@",
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500753 "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@",
Kevin Lubickf1585aa2017-12-12 07:33:48 -0500754 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@",
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500755 "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@",
756 "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@",
757 "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@",
758 "@@@STEP_LOG_END@python.inline@@@"
759 ]
Kevin Lubickbca95a52017-11-20 16:06:06 -0500760 },
761 {
762 "cmd": [
Kevin Lubicke3b01302017-12-12 15:57:20 -0500763 "python",
764 "-u",
Kevin Lubicke9188852017-12-14 09:47:05 -0500765 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n",
Kevin Lubicke3b01302017-12-12 15:57:20 -0500766 "/usr/bin/adb.1.0.35",
Kevin Lubicke9188852017-12-14 09:47:05 -0500767 "2",
768 "userspace"
769 ],
770 "env": {
771 "BUILDTYPE": "Debug",
772 "CHROME_HEADLESS": "1",
773 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
774 "SKIA_OUT": "[START_DIR]/out"
775 },
776 "infra_step": true,
777 "name": "Set CPU 2's governor to userspace",
778 "timeout": 30,
779 "~followup_annotations": [
780 "@@@STEP_LOG_LINE@python.inline@@@@",
781 "@@@STEP_LOG_LINE@python.inline@import os@@@",
782 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
783 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
784 "@@@STEP_LOG_LINE@python.inline@import time@@@",
785 "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
786 "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@",
787 "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@",
788 "@@@STEP_LOG_LINE@python.inline@@@@",
789 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
790 "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
791 "@@@STEP_LOG_LINE@python.inline@print log@@@",
792 "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
793 "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
794 "@@@STEP_LOG_LINE@python.inline@@@@",
795 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@",
796 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@",
797 "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@",
798 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@",
799 "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@",
800 "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@",
801 "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@",
802 "@@@STEP_LOG_END@python.inline@@@"
803 ]
804 },
805 {
806 "cmd": [
807 "python",
808 "-u",
809 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint 'Setting frequency to %d' % freq\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n",
810 "/usr/bin/adb.1.0.35",
811 "0.6",
Kevin Lubicke3b01302017-12-12 15:57:20 -0500812 "2"
813 ],
814 "env": {
815 "BUILDTYPE": "Debug",
816 "CHROME_HEADLESS": "1",
817 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
818 "SKIA_OUT": "[START_DIR]/out"
819 },
820 "infra_step": true,
Kevin Lubicke9188852017-12-14 09:47:05 -0500821 "name": "Scale CPU 2 to 0.600000",
Kevin Lubicke3b01302017-12-12 15:57:20 -0500822 "timeout": 30,
823 "~followup_annotations": [
824 "@@@STEP_LOG_LINE@python.inline@@@@",
825 "@@@STEP_LOG_LINE@python.inline@import os@@@",
826 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
827 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
828 "@@@STEP_LOG_LINE@python.inline@import time@@@",
829 "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
Kevin Lubicke9188852017-12-14 09:47:05 -0500830 "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@",
831 "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@",
Kevin Lubicke3b01302017-12-12 15:57:20 -0500832 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
833 "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
834 "@@@STEP_LOG_LINE@python.inline@print log@@@",
835 "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
836 "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
837 "@@@STEP_LOG_LINE@python.inline@@@@",
Kevin Lubicke9188852017-12-14 09:47:05 -0500838 "@@@STEP_LOG_LINE@python.inline@root = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu@@@",
839 "@@@STEP_LOG_LINE@python.inline@@@@",
840 "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@",
841 "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@",
842 "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@",
843 "@@@STEP_LOG_LINE@python.inline@@@@",
844 "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@",
845 "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@",
846 "@@@STEP_LOG_LINE@python.inline@ available_freqs = sorted(@@@",
847 "@@@STEP_LOG_LINE@python.inline@ int(i) for i in available_freqs.strip().split())@@@",
848 "@@@STEP_LOG_LINE@python.inline@else:@@@",
849 "@@@STEP_LOG_LINE@python.inline@ raise Exception('Could not get list of available frequencies: %s' %@@@",
850 "@@@STEP_LOG_LINE@python.inline@ available_freqs)@@@",
851 "@@@STEP_LOG_LINE@python.inline@@@@",
852 "@@@STEP_LOG_LINE@python.inline@maxfreq = available_freqs[-1]@@@",
853 "@@@STEP_LOG_LINE@python.inline@target = int(round(maxfreq * target_percent))@@@",
854 "@@@STEP_LOG_LINE@python.inline@freq = maxfreq@@@",
855 "@@@STEP_LOG_LINE@python.inline@for f in reversed(available_freqs):@@@",
856 "@@@STEP_LOG_LINE@python.inline@ if f <= target:@@@",
857 "@@@STEP_LOG_LINE@python.inline@ freq = f@@@",
858 "@@@STEP_LOG_LINE@python.inline@ break@@@",
859 "@@@STEP_LOG_LINE@python.inline@@@@",
860 "@@@STEP_LOG_LINE@python.inline@print 'Setting frequency to %d' % freq@@@",
861 "@@@STEP_LOG_LINE@python.inline@@@@",
862 "@@@STEP_LOG_LINE@python.inline@# If scaling_max_freq is lower than our attempted setting, it won't take.@@@",
863 "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@",
864 "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@",
865 "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@",
Kevin Lubicke3b01302017-12-12 15:57:20 -0500866 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@",
Kevin Lubicke9188852017-12-14 09:47:05 -0500867 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@",
868 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
869 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@",
870 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
871 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@",
872 "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@",
873 "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@",
874 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@",
875 "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@",
Kevin Lubicke3b01302017-12-12 15:57:20 -0500876 "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@",
Kevin Lubicke9188852017-12-14 09:47:05 -0500877 "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@",
Kevin Lubicke3b01302017-12-12 15:57:20 -0500878 "@@@STEP_LOG_END@python.inline@@@"
879 ]
880 },
881 {
882 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500883 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400884 "push",
Kevin Lubick02f709e2017-10-12 15:15:47 -0400885 "[START_DIR]/out/Debug/nanobench",
Eric Borenb82fdc72017-04-19 13:36:00 -0400886 "/data/local/tmp/"
887 ],
888 "cwd": "[START_DIR]/skia",
889 "env": {
890 "BUILDTYPE": "Debug",
891 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700892 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400893 "SKIA_OUT": "[START_DIR]/out"
894 },
895 "infra_step": true,
Kevin Lubick02f709e2017-10-12 15:15:47 -0400896 "name": "push nanobench"
Eric Borenb82fdc72017-04-19 13:36:00 -0400897 },
898 {
899 "cmd": [
900 "python",
901 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400902 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
903 "--json-output",
904 "/path/to/tmp/json",
905 "copy",
Kevin Lubick02f709e2017-10-12 15:15:47 -0400906 "set -x; /data/local/tmp/nanobench --some-flag; echo $? >/data/local/tmp/rc",
907 "[START_DIR]/tmp/nanobench.sh"
Eric Borenb82fdc72017-04-19 13:36:00 -0400908 ],
909 "infra_step": true,
Kevin Lubick02f709e2017-10-12 15:15:47 -0400910 "name": "write nanobench.sh"
Eric Borenb82fdc72017-04-19 13:36:00 -0400911 },
912 {
913 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500914 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400915 "push",
Kevin Lubick02f709e2017-10-12 15:15:47 -0400916 "[START_DIR]/tmp/nanobench.sh",
Eric Borenb82fdc72017-04-19 13:36:00 -0400917 "/data/local/tmp/"
918 ],
919 "cwd": "[START_DIR]/skia",
920 "env": {
921 "BUILDTYPE": "Debug",
922 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700923 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400924 "SKIA_OUT": "[START_DIR]/out"
925 },
926 "infra_step": true,
Kevin Lubick02f709e2017-10-12 15:15:47 -0400927 "name": "push nanobench.sh"
Eric Borenb82fdc72017-04-19 13:36:00 -0400928 },
929 {
930 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500931 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400932 "logcat",
933 "-c"
934 ],
935 "cwd": "[START_DIR]/skia",
936 "env": {
937 "BUILDTYPE": "Debug",
938 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700939 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400940 "SKIA_OUT": "[START_DIR]/out"
941 },
942 "infra_step": true,
943 "name": "clear log"
944 },
945 {
946 "cmd": [
947 "python",
948 "-u",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500949 "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/usr/bin/adb.1.0.35', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400950 "/data/local/tmp/",
Kevin Lubick02f709e2017-10-12 15:15:47 -0400951 "nanobench.sh"
Eric Borenb82fdc72017-04-19 13:36:00 -0400952 ],
Kevin Lubick02f709e2017-10-12 15:15:47 -0400953 "name": "nanobench",
Eric Borenb82fdc72017-04-19 13:36:00 -0400954 "~followup_annotations": [
955 "@@@STEP_LOG_LINE@python.inline@@@@",
956 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
957 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
958 "@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
959 "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500960 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400961 "@@@STEP_LOG_LINE@python.inline@try:@@@",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500962 "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/usr/bin/adb.1.0.35', 'shell', 'cat',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400963 "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@",
964 "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
965 "@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@",
966 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
967 "@@@STEP_LOG_END@python.inline@@@"
968 ]
969 },
970 {
971 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500972 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400973 "pull",
Eric Borenb82fdc72017-04-19 13:36:00 -0400974 "/sdcard/revenge_of_the_skiabot/perf",
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400975 "[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-All-Android/data"
Eric Borenb82fdc72017-04-19 13:36:00 -0400976 ],
977 "cwd": "[START_DIR]/skia",
978 "env": {
979 "BUILDTYPE": "Debug",
980 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700981 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400982 "SKIA_OUT": "[START_DIR]/out"
983 },
984 "infra_step": true,
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400985 "name": "pull /sdcard/revenge_of_the_skiabot/perf [CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-All-Android/data"
Eric Borenb82fdc72017-04-19 13:36:00 -0400986 },
987 {
988 "cmd": [
989 "python",
990 "-u",
Kevin Lubick4fd283e2017-12-07 11:19:31 -0500991 "\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 sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400992 "[START_DIR]/out/Debug"
993 ],
994 "env": {
995 "BUILDTYPE": "Debug",
996 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700997 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400998 "SKIA_OUT": "[START_DIR]/out"
999 },
1000 "infra_step": true,
1001 "name": "dump log",
Kevin Lubick587afc92017-10-12 12:21:47 -04001002 "timeout": 300,
Eric Borenb82fdc72017-04-19 13:36:00 -04001003 "~followup_annotations": [
1004 "step returned non-zero exit code: 1",
1005 "@@@STEP_LOG_LINE@python.inline@@@@",
1006 "@@@STEP_LOG_LINE@python.inline@import os@@@",
1007 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
1008 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
1009 "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
Kevin Lubick4fd283e2017-12-07 11:19:31 -05001010 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -04001011 "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
1012 "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
1013 "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
1014 "@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
1015 "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
1016 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
1017 "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
1018 "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
1019 "@@@STEP_LOG_LINE@python.inline@ print line@@@",
1020 "@@@STEP_LOG_END@python.inline@@@",
1021 "@@@STEP_EXCEPTION@@@"
1022 ]
1023 },
1024 {
1025 "cmd": [
Kevin Lubick60bb2d52017-12-22 10:43:15 -05001026 "python",
1027 "-u",
1028 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
1029 "--json-output",
1030 "/path/to/tmp/json",
1031 "copy",
1032 " ",
1033 "~/force_quarantine"
Eric Borenb82fdc72017-04-19 13:36:00 -04001034 ],
Eric Borenb82fdc72017-04-19 13:36:00 -04001035 "infra_step": true,
Kevin Lubick60bb2d52017-12-22 10:43:15 -05001036 "name": "Quarantining Bot"
Eric Borenb82fdc72017-04-19 13:36:00 -04001037 },
1038 {
1039 "cmd": [
Kevin Lubick4fd283e2017-12-07 11:19:31 -05001040 "/usr/bin/adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -04001041 "kill-server"
1042 ],
1043 "cwd": "[START_DIR]/skia",
1044 "env": {
1045 "BUILDTYPE": "Debug",
1046 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -07001047 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -04001048 "SKIA_OUT": "[START_DIR]/out"
1049 },
1050 "infra_step": true,
1051 "name": "kill adb server"
1052 },
1053 {
1054 "name": "$result",
1055 "reason": "Failed build steps: dump log",
1056 "recipe_result": null,
1057 "status_code": 1
1058 }
1059]