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