1[
2  {
3    "cmd": [
4      "vpython3",
5      "-u",
6      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
7      "--json-output",
8      "/path/to/tmp/json",
9      "ensure-directory",
10      "--mode",
11      "0o777",
12      "[START_DIR]/tmp"
13    ],
14    "infra_step": true,
15    "name": "makedirs tmp_dir"
16  },
17  {
18    "cmd": [
19      "python3",
20      "RECIPE_MODULE[skia::vars]/resources/get_env_var.py",
21      "SWARMING_BOT_ID"
22    ],
23    "name": "get swarming bot id"
24  },
25  {
26    "cmd": [
27      "/usr/bin/adb.1.0.35",
28      "shell",
29      "mkdir",
30      "-p",
31      "/sdcard/revenge_of_the_skiabot/resources"
32    ],
33    "cwd": "[START_DIR]/skia",
34    "env": {
35      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
36      "CHROME_HEADLESS": "1",
37      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
38    },
39    "infra_step": true,
40    "name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
41  },
42  {
43    "cmd": [
44      "python3",
45      "RECIPE_MODULE[skia::flavor]/resources/set_cpu_scaling_governor.py",
46      "/usr/bin/adb.1.0.35",
47      "0",
48      "userspace"
49    ],
50    "env": {
51      "CHROME_HEADLESS": "1",
52      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
53    },
54    "infra_step": true,
55    "name": "Set CPU 0's governor to userspace",
56    "timeout": 30
57  },
58  {
59    "cmd": [
60      "python3",
61      "RECIPE_MODULE[skia::flavor]/resources/scale_cpu.py",
62      "/usr/bin/adb.1.0.35",
63      "0.6",
64      "0"
65    ],
66    "env": {
67      "CHROME_HEADLESS": "1",
68      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
69    },
70    "infra_step": true,
71    "name": "Scale CPU 0 to 0.600000",
72    "timeout": 30
73  },
74  {
75    "cmd": [
76      "/usr/bin/adb.1.0.35",
77      "push",
78      "[START_DIR]/build/nanobench",
79      "/data/local/tmp/"
80    ],
81    "cwd": "[START_DIR]/skia",
82    "env": {
83      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
84      "CHROME_HEADLESS": "1",
85      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
86    },
87    "infra_step": true,
88    "name": "push nanobench"
89  },
90  {
91    "cmd": [
92      "vpython3",
93      "-u",
94      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
95      "--json-output",
96      "/path/to/tmp/json",
97      "copy",
98      "[START_DIR]/skia/infra/bots/assets/text_blob_traces/VERSION",
99      "/path/to/tmp/"
100    ],
101    "infra_step": true,
102    "name": "Get text_blob_traces VERSION",
103    "~followup_annotations": [
104      "@@@STEP_LOG_LINE@VERSION@42@@@",
105      "@@@STEP_LOG_END@VERSION@@@"
106    ]
107  },
108  {
109    "cmd": [
110      "vpython3",
111      "-u",
112      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
113      "--json-output",
114      "/path/to/tmp/json",
115      "copy",
116      "42",
117      "[START_DIR]/tmp/TEXTTRACES_VERSION"
118    ],
119    "infra_step": true,
120    "name": "write TEXTTRACES_VERSION",
121    "~followup_annotations": [
122      "@@@STEP_LOG_LINE@TEXTTRACES_VERSION@42@@@",
123      "@@@STEP_LOG_END@TEXTTRACES_VERSION@@@"
124    ]
125  },
126  {
127    "cmd": [
128      "/usr/bin/adb.1.0.35",
129      "shell",
130      "test",
131      "-f",
132      "/sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
133    ],
134    "cwd": "[START_DIR]/skia",
135    "env": {
136      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
137      "CHROME_HEADLESS": "1",
138      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
139    },
140    "infra_step": true,
141    "name": "check if /sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION exists"
142  },
143  {
144    "cmd": [
145      "/usr/bin/adb.1.0.35",
146      "shell",
147      "cat",
148      "/sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
149    ],
150    "cwd": "[START_DIR]/skia",
151    "env": {
152      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
153      "CHROME_HEADLESS": "1",
154      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
155    },
156    "infra_step": true,
157    "name": "read /sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
158  },
159  {
160    "cmd": [
161      "python3",
162      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
163      "/usr/bin/adb.1.0.35",
164      "/sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
165    ],
166    "env": {
167      "CHROME_HEADLESS": "1",
168      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
169    },
170    "infra_step": true,
171    "name": "rm /sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
172  },
173  {
174    "cmd": [
175      "python3",
176      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
177      "/usr/bin/adb.1.0.35",
178      "/sdcard/revenge_of_the_skiabot/text_blob_traces"
179    ],
180    "env": {
181      "CHROME_HEADLESS": "1",
182      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
183    },
184    "infra_step": true,
185    "name": "rm /sdcard/revenge_of_the_skiabot/text_blob_traces"
186  },
187  {
188    "cmd": [
189      "/usr/bin/adb.1.0.35",
190      "shell",
191      "mkdir",
192      "-p",
193      "/sdcard/revenge_of_the_skiabot/text_blob_traces"
194    ],
195    "cwd": "[START_DIR]/skia",
196    "env": {
197      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
198      "CHROME_HEADLESS": "1",
199      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
200    },
201    "infra_step": true,
202    "name": "mkdir /sdcard/revenge_of_the_skiabot/text_blob_traces"
203  },
204  {
205    "cmd": [
206      "vpython3",
207      "-u",
208      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
209      "--json-output",
210      "/path/to/tmp/json",
211      "glob",
212      "[START_DIR]/text_blob_traces",
213      "*"
214    ],
215    "infra_step": true,
216    "name": "ls [START_DIR]/text_blob_traces/*",
217    "~followup_annotations": [
218      "@@@STEP_LOG_LINE@glob@[START_DIR]/text_blob_traces/bar.jpg@@@",
219      "@@@STEP_LOG_LINE@glob@[START_DIR]/text_blob_traces/foo.png@@@",
220      "@@@STEP_LOG_END@glob@@@"
221    ]
222  },
223  {
224    "cmd": [
225      "/usr/bin/adb.1.0.35",
226      "push",
227      "[START_DIR]/text_blob_traces/bar.jpg",
228      "[START_DIR]/text_blob_traces/foo.png",
229      "/sdcard/revenge_of_the_skiabot/text_blob_traces"
230    ],
231    "cwd": "[START_DIR]/skia",
232    "env": {
233      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
234      "CHROME_HEADLESS": "1",
235      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
236    },
237    "infra_step": true,
238    "name": "push [START_DIR]/text_blob_traces/* /sdcard/revenge_of_the_skiabot/text_blob_traces"
239  },
240  {
241    "cmd": [
242      "/usr/bin/adb.1.0.35",
243      "push",
244      "[START_DIR]/tmp/TEXTTRACES_VERSION",
245      "/sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
246    ],
247    "cwd": "[START_DIR]/skia",
248    "env": {
249      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
250      "CHROME_HEADLESS": "1",
251      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
252    },
253    "infra_step": true,
254    "name": "push [START_DIR]/tmp/TEXTTRACES_VERSION /sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
255  },
256  {
257    "cmd": [
258      "vpython3",
259      "-u",
260      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
261      "--json-output",
262      "/path/to/tmp/json",
263      "glob",
264      "[START_DIR]/skia/resources",
265      "*"
266    ],
267    "infra_step": true,
268    "name": "ls [START_DIR]/skia/resources/*",
269    "~followup_annotations": [
270      "@@@STEP_LOG_LINE@glob@[START_DIR]/skia/resources/bar.jpg@@@",
271      "@@@STEP_LOG_LINE@glob@[START_DIR]/skia/resources/foo.png@@@",
272      "@@@STEP_LOG_END@glob@@@"
273    ]
274  },
275  {
276    "cmd": [
277      "/usr/bin/adb.1.0.35",
278      "push",
279      "[START_DIR]/skia/resources/bar.jpg",
280      "[START_DIR]/skia/resources/foo.png",
281      "/sdcard/revenge_of_the_skiabot/resources"
282    ],
283    "cwd": "[START_DIR]/skia",
284    "env": {
285      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
286      "CHROME_HEADLESS": "1",
287      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
288    },
289    "infra_step": true,
290    "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources"
291  },
292  {
293    "cmd": [
294      "vpython3",
295      "-u",
296      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
297      "--json-output",
298      "/path/to/tmp/json",
299      "copy",
300      "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
301      "/path/to/tmp/"
302    ],
303    "infra_step": true,
304    "name": "Get skp VERSION",
305    "~followup_annotations": [
306      "@@@STEP_LOG_LINE@VERSION@42@@@",
307      "@@@STEP_LOG_END@VERSION@@@"
308    ]
309  },
310  {
311    "cmd": [
312      "vpython3",
313      "-u",
314      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
315      "--json-output",
316      "/path/to/tmp/json",
317      "copy",
318      "42",
319      "[START_DIR]/tmp/SKP_VERSION"
320    ],
321    "infra_step": true,
322    "name": "write SKP_VERSION",
323    "~followup_annotations": [
324      "@@@STEP_LOG_LINE@SKP_VERSION@42@@@",
325      "@@@STEP_LOG_END@SKP_VERSION@@@"
326    ]
327  },
328  {
329    "cmd": [
330      "/usr/bin/adb.1.0.35",
331      "shell",
332      "test",
333      "-f",
334      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
335    ],
336    "cwd": "[START_DIR]/skia",
337    "env": {
338      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
339      "CHROME_HEADLESS": "1",
340      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
341    },
342    "infra_step": true,
343    "name": "check if /sdcard/revenge_of_the_skiabot/SKP_VERSION exists"
344  },
345  {
346    "cmd": [
347      "/usr/bin/adb.1.0.35",
348      "shell",
349      "cat",
350      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
351    ],
352    "cwd": "[START_DIR]/skia",
353    "env": {
354      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
355      "CHROME_HEADLESS": "1",
356      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
357    },
358    "infra_step": true,
359    "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION"
360  },
361  {
362    "cmd": [
363      "python3",
364      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
365      "/usr/bin/adb.1.0.35",
366      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
367    ],
368    "env": {
369      "CHROME_HEADLESS": "1",
370      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
371    },
372    "infra_step": true,
373    "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
374  },
375  {
376    "cmd": [
377      "python3",
378      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
379      "/usr/bin/adb.1.0.35",
380      "/sdcard/revenge_of_the_skiabot/skps"
381    ],
382    "env": {
383      "CHROME_HEADLESS": "1",
384      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
385    },
386    "infra_step": true,
387    "name": "rm /sdcard/revenge_of_the_skiabot/skps"
388  },
389  {
390    "cmd": [
391      "/usr/bin/adb.1.0.35",
392      "shell",
393      "mkdir",
394      "-p",
395      "/sdcard/revenge_of_the_skiabot/skps"
396    ],
397    "cwd": "[START_DIR]/skia",
398    "env": {
399      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
400      "CHROME_HEADLESS": "1",
401      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
402    },
403    "infra_step": true,
404    "name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
405  },
406  {
407    "cmd": [
408      "vpython3",
409      "-u",
410      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
411      "--json-output",
412      "/path/to/tmp/json",
413      "glob",
414      "[START_DIR]/skp",
415      "*"
416    ],
417    "infra_step": true,
418    "name": "ls [START_DIR]/skp/*",
419    "~followup_annotations": [
420      "@@@STEP_LOG_LINE@glob@[START_DIR]/skp/bar.jpg@@@",
421      "@@@STEP_LOG_LINE@glob@[START_DIR]/skp/foo.png@@@",
422      "@@@STEP_LOG_END@glob@@@"
423    ]
424  },
425  {
426    "cmd": [
427      "/usr/bin/adb.1.0.35",
428      "push",
429      "[START_DIR]/skp/bar.jpg",
430      "[START_DIR]/skp/foo.png",
431      "/sdcard/revenge_of_the_skiabot/skps"
432    ],
433    "cwd": "[START_DIR]/skia",
434    "env": {
435      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
436      "CHROME_HEADLESS": "1",
437      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
438    },
439    "infra_step": true,
440    "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps"
441  },
442  {
443    "cmd": [
444      "/usr/bin/adb.1.0.35",
445      "push",
446      "[START_DIR]/tmp/SKP_VERSION",
447      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
448    ],
449    "cwd": "[START_DIR]/skia",
450    "env": {
451      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
452      "CHROME_HEADLESS": "1",
453      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
454    },
455    "infra_step": true,
456    "name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
457  },
458  {
459    "cmd": [
460      "vpython3",
461      "-u",
462      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
463      "--json-output",
464      "/path/to/tmp/json",
465      "copy",
466      "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
467      "/path/to/tmp/"
468    ],
469    "infra_step": true,
470    "name": "Get skimage VERSION",
471    "~followup_annotations": [
472      "@@@STEP_LOG_LINE@VERSION@42@@@",
473      "@@@STEP_LOG_END@VERSION@@@"
474    ]
475  },
476  {
477    "cmd": [
478      "vpython3",
479      "-u",
480      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
481      "--json-output",
482      "/path/to/tmp/json",
483      "copy",
484      "42",
485      "[START_DIR]/tmp/SK_IMAGE_VERSION"
486    ],
487    "infra_step": true,
488    "name": "write SK_IMAGE_VERSION",
489    "~followup_annotations": [
490      "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@",
491      "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@"
492    ]
493  },
494  {
495    "cmd": [
496      "/usr/bin/adb.1.0.35",
497      "shell",
498      "test",
499      "-f",
500      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
501    ],
502    "cwd": "[START_DIR]/skia",
503    "env": {
504      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
505      "CHROME_HEADLESS": "1",
506      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
507    },
508    "infra_step": true,
509    "name": "check if /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION exists"
510  },
511  {
512    "cmd": [
513      "/usr/bin/adb.1.0.35",
514      "shell",
515      "cat",
516      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
517    ],
518    "cwd": "[START_DIR]/skia",
519    "env": {
520      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
521      "CHROME_HEADLESS": "1",
522      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
523    },
524    "infra_step": true,
525    "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
526  },
527  {
528    "cmd": [
529      "python3",
530      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
531      "/usr/bin/adb.1.0.35",
532      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
533    ],
534    "env": {
535      "CHROME_HEADLESS": "1",
536      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
537    },
538    "infra_step": true,
539    "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
540  },
541  {
542    "cmd": [
543      "python3",
544      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
545      "/usr/bin/adb.1.0.35",
546      "/sdcard/revenge_of_the_skiabot/images"
547    ],
548    "env": {
549      "CHROME_HEADLESS": "1",
550      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
551    },
552    "infra_step": true,
553    "name": "rm /sdcard/revenge_of_the_skiabot/images"
554  },
555  {
556    "cmd": [
557      "/usr/bin/adb.1.0.35",
558      "shell",
559      "mkdir",
560      "-p",
561      "/sdcard/revenge_of_the_skiabot/images"
562    ],
563    "cwd": "[START_DIR]/skia",
564    "env": {
565      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
566      "CHROME_HEADLESS": "1",
567      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
568    },
569    "infra_step": true,
570    "name": "mkdir /sdcard/revenge_of_the_skiabot/images"
571  },
572  {
573    "cmd": [
574      "vpython3",
575      "-u",
576      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
577      "--json-output",
578      "/path/to/tmp/json",
579      "glob",
580      "[START_DIR]/skimage",
581      "*"
582    ],
583    "infra_step": true,
584    "name": "ls [START_DIR]/skimage/*",
585    "~followup_annotations": [
586      "@@@STEP_LOG_LINE@glob@[START_DIR]/skimage/bar.jpg@@@",
587      "@@@STEP_LOG_LINE@glob@[START_DIR]/skimage/foo.png@@@",
588      "@@@STEP_LOG_END@glob@@@"
589    ]
590  },
591  {
592    "cmd": [
593      "/usr/bin/adb.1.0.35",
594      "push",
595      "[START_DIR]/skimage/bar.jpg",
596      "[START_DIR]/skimage/foo.png",
597      "/sdcard/revenge_of_the_skiabot/images"
598    ],
599    "cwd": "[START_DIR]/skia",
600    "env": {
601      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
602      "CHROME_HEADLESS": "1",
603      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
604    },
605    "infra_step": true,
606    "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images"
607  },
608  {
609    "cmd": [
610      "/usr/bin/adb.1.0.35",
611      "push",
612      "[START_DIR]/tmp/SK_IMAGE_VERSION",
613      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
614    ],
615    "cwd": "[START_DIR]/skia",
616    "env": {
617      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
618      "CHROME_HEADLESS": "1",
619      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
620    },
621    "infra_step": true,
622    "name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
623  },
624  {
625    "cmd": [
626      "vpython3",
627      "-u",
628      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
629      "--json-output",
630      "/path/to/tmp/json",
631      "copy",
632      "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
633      "/path/to/tmp/"
634    ],
635    "infra_step": true,
636    "name": "Get svg VERSION",
637    "~followup_annotations": [
638      "@@@STEP_LOG_LINE@VERSION@42@@@",
639      "@@@STEP_LOG_END@VERSION@@@"
640    ]
641  },
642  {
643    "cmd": [
644      "vpython3",
645      "-u",
646      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
647      "--json-output",
648      "/path/to/tmp/json",
649      "copy",
650      "42",
651      "[START_DIR]/tmp/SVG_VERSION"
652    ],
653    "infra_step": true,
654    "name": "write SVG_VERSION",
655    "~followup_annotations": [
656      "@@@STEP_LOG_LINE@SVG_VERSION@42@@@",
657      "@@@STEP_LOG_END@SVG_VERSION@@@"
658    ]
659  },
660  {
661    "cmd": [
662      "/usr/bin/adb.1.0.35",
663      "shell",
664      "test",
665      "-f",
666      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
667    ],
668    "cwd": "[START_DIR]/skia",
669    "env": {
670      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
671      "CHROME_HEADLESS": "1",
672      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
673    },
674    "infra_step": true,
675    "name": "check if /sdcard/revenge_of_the_skiabot/SVG_VERSION exists"
676  },
677  {
678    "cmd": [
679      "/usr/bin/adb.1.0.35",
680      "shell",
681      "cat",
682      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
683    ],
684    "cwd": "[START_DIR]/skia",
685    "env": {
686      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
687      "CHROME_HEADLESS": "1",
688      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
689    },
690    "infra_step": true,
691    "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION"
692  },
693  {
694    "cmd": [
695      "python3",
696      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
697      "/usr/bin/adb.1.0.35",
698      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
699    ],
700    "env": {
701      "CHROME_HEADLESS": "1",
702      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
703    },
704    "infra_step": true,
705    "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
706  },
707  {
708    "cmd": [
709      "python3",
710      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
711      "/usr/bin/adb.1.0.35",
712      "/sdcard/revenge_of_the_skiabot/svgs"
713    ],
714    "env": {
715      "CHROME_HEADLESS": "1",
716      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
717    },
718    "infra_step": true,
719    "name": "rm /sdcard/revenge_of_the_skiabot/svgs"
720  },
721  {
722    "cmd": [
723      "/usr/bin/adb.1.0.35",
724      "shell",
725      "mkdir",
726      "-p",
727      "/sdcard/revenge_of_the_skiabot/svgs"
728    ],
729    "cwd": "[START_DIR]/skia",
730    "env": {
731      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
732      "CHROME_HEADLESS": "1",
733      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
734    },
735    "infra_step": true,
736    "name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
737  },
738  {
739    "cmd": [
740      "vpython3",
741      "-u",
742      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
743      "--json-output",
744      "/path/to/tmp/json",
745      "glob",
746      "[START_DIR]/svg",
747      "*"
748    ],
749    "infra_step": true,
750    "name": "ls [START_DIR]/svg/*",
751    "~followup_annotations": [
752      "@@@STEP_LOG_LINE@glob@[START_DIR]/svg/bar.jpg@@@",
753      "@@@STEP_LOG_LINE@glob@[START_DIR]/svg/foo.png@@@",
754      "@@@STEP_LOG_END@glob@@@"
755    ]
756  },
757  {
758    "cmd": [
759      "/usr/bin/adb.1.0.35",
760      "push",
761      "[START_DIR]/svg/bar.jpg",
762      "[START_DIR]/svg/foo.png",
763      "/sdcard/revenge_of_the_skiabot/svgs"
764    ],
765    "cwd": "[START_DIR]/skia",
766    "env": {
767      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
768      "CHROME_HEADLESS": "1",
769      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
770    },
771    "infra_step": true,
772    "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs"
773  },
774  {
775    "cmd": [
776      "/usr/bin/adb.1.0.35",
777      "push",
778      "[START_DIR]/tmp/SVG_VERSION",
779      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
780    ],
781    "cwd": "[START_DIR]/skia",
782    "env": {
783      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
784      "CHROME_HEADLESS": "1",
785      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
786    },
787    "infra_step": true,
788    "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
789  },
790  {
791    "cmd": [
792      "python3",
793      "RECIPE_MODULE[skia::vars]/resources/get_env_var.py",
794      "SWARMING_TASK_ID"
795    ],
796    "name": "get swarming task id"
797  },
798  {
799    "cmd": [
800      "vpython3",
801      "-u",
802      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
803      "--json-output",
804      "/path/to/tmp/json",
805      "copy",
806      "set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/nanobench --example --flags -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --texttraces /sdcard/revenge_of_the_skiabot/text_blob_traces --svgs /sdcard/revenge_of_the_skiabot/svgs; echo $? >/data/local/tmp/rc",
807      "[START_DIR]/tmp/nanobench.sh"
808    ],
809    "env": {
810      "CHROME_HEADLESS": "1",
811      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
812    },
813    "infra_step": true,
814    "name": "write nanobench.sh",
815    "~followup_annotations": [
816      "@@@[email protected]@set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/nanobench --example --flags -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --texttraces /sdcard/revenge_of_the_skiabot/text_blob_traces --svgs /sdcard/revenge_of_the_skiabot/svgs; echo $? >/data/local/tmp/rc@@@",
817      "@@@[email protected]@@@"
818    ]
819  },
820  {
821    "cmd": [
822      "/usr/bin/adb.1.0.35",
823      "push",
824      "[START_DIR]/tmp/nanobench.sh",
825      "/data/local/tmp/"
826    ],
827    "cwd": "[START_DIR]/skia",
828    "env": {
829      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
830      "CHROME_HEADLESS": "1",
831      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
832    },
833    "infra_step": true,
834    "name": "push nanobench.sh"
835  },
836  {
837    "cmd": [
838      "/usr/bin/adb.1.0.35",
839      "logcat",
840      "-c"
841    ],
842    "cwd": "[START_DIR]/skia",
843    "env": {
844      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
845      "CHROME_HEADLESS": "1",
846      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
847    },
848    "infra_step": true,
849    "name": "clear log"
850  },
851  {
852    "cmd": [
853      "python3",
854      "RECIPE_MODULE[skia::flavor]/resources/run_sh.py",
855      "/data/local/tmp/",
856      "nanobench.sh",
857      "/usr/bin/adb.1.0.35"
858    ],
859    "env": {
860      "CHROME_HEADLESS": "1",
861      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
862    },
863    "name": "nanobench"
864  },
865  {
866    "cmd": [
867      "/usr/bin/adb.1.0.35",
868      "reboot"
869    ],
870    "env": {
871      "CHROME_HEADLESS": "1",
872      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
873    },
874    "infra_step": true,
875    "name": "adb reboot device",
876    "timeout": 30
877  },
878  {
879    "cmd": [
880      "/usr/bin/adb.1.0.35",
881      "wait-for-device",
882      "shell",
883      "while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done"
884    ],
885    "env": {
886      "CHROME_HEADLESS": "1",
887      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
888    },
889    "name": "wait for device after rebooting",
890    "timeout": 180
891  },
892  {
893    "cmd": [
894      "python3",
895      "RECIPE_MODULE[skia::flavor]/resources/dump_adb_log.py",
896      "[START_DIR]/build",
897      "/usr/bin/adb.1.0.35"
898    ],
899    "env": {
900      "CHROME_HEADLESS": "1",
901      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
902    },
903    "infra_step": true,
904    "name": "dump log",
905    "timeout": 300
906  },
907  {
908    "name": "$result"
909  }
910]