• 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      "vpython3",
184      "-u",
185      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
186      "--json-output",
187      "/path/to/tmp/json",
188      "glob",
189      "[START_DIR]/skia/resources",
190      "*"
191    ],
192    "infra_step": true,
193    "name": "ls [START_DIR]/skia/resources/*",
194    "~followup_annotations": [
195      "@@@STEP_LOG_LINE@glob@[START_DIR]/skia/resources/bar.jpg@@@",
196      "@@@STEP_LOG_LINE@glob@[START_DIR]/skia/resources/foo.png@@@",
197      "@@@STEP_LOG_END@glob@@@"
198    ]
199  },
200  {
201    "cmd": [
202      "/opt/infra-android/tools/adb",
203      "push",
204      "[START_DIR]/skia/resources/bar.jpg",
205      "[START_DIR]/skia/resources/foo.png",
206      "/sdcard/revenge_of_the_skiabot/resources"
207    ],
208    "cwd": "[START_DIR]/skia",
209    "env": {
210      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
211      "CHROME_HEADLESS": "1",
212      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
213    },
214    "infra_step": true,
215    "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources"
216  },
217  {
218    "cmd": [
219      "vpython3",
220      "-u",
221      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
222      "--json-output",
223      "/path/to/tmp/json",
224      "copy",
225      "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
226      "/path/to/tmp/"
227    ],
228    "infra_step": true,
229    "name": "Get skp VERSION",
230    "~followup_annotations": [
231      "@@@STEP_LOG_LINE@VERSION@42@@@",
232      "@@@STEP_LOG_END@VERSION@@@"
233    ]
234  },
235  {
236    "cmd": [
237      "vpython3",
238      "-u",
239      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
240      "--json-output",
241      "/path/to/tmp/json",
242      "copy",
243      "42",
244      "[START_DIR]/tmp/SKP_VERSION"
245    ],
246    "infra_step": true,
247    "name": "write SKP_VERSION",
248    "~followup_annotations": [
249      "@@@STEP_LOG_LINE@SKP_VERSION@42@@@",
250      "@@@STEP_LOG_END@SKP_VERSION@@@"
251    ]
252  },
253  {
254    "cmd": [
255      "/opt/infra-android/tools/adb",
256      "shell",
257      "test",
258      "-f",
259      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
260    ],
261    "cwd": "[START_DIR]/skia",
262    "env": {
263      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
264      "CHROME_HEADLESS": "1",
265      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
266    },
267    "infra_step": true,
268    "name": "check if /sdcard/revenge_of_the_skiabot/SKP_VERSION exists"
269  },
270  {
271    "cmd": [
272      "/opt/infra-android/tools/adb",
273      "shell",
274      "cat",
275      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
276    ],
277    "cwd": "[START_DIR]/skia",
278    "env": {
279      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
280      "CHROME_HEADLESS": "1",
281      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
282    },
283    "infra_step": true,
284    "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION"
285  },
286  {
287    "cmd": [
288      "python3",
289      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
290      "/opt/infra-android/tools/adb",
291      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
292    ],
293    "env": {
294      "CHROME_HEADLESS": "1",
295      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
296    },
297    "infra_step": true,
298    "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
299  },
300  {
301    "cmd": [
302      "python3",
303      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
304      "/opt/infra-android/tools/adb",
305      "/sdcard/revenge_of_the_skiabot/skps"
306    ],
307    "env": {
308      "CHROME_HEADLESS": "1",
309      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
310    },
311    "infra_step": true,
312    "name": "rm /sdcard/revenge_of_the_skiabot/skps"
313  },
314  {
315    "cmd": [
316      "/opt/infra-android/tools/adb",
317      "shell",
318      "mkdir",
319      "-p",
320      "/sdcard/revenge_of_the_skiabot/skps"
321    ],
322    "cwd": "[START_DIR]/skia",
323    "env": {
324      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
325      "CHROME_HEADLESS": "1",
326      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
327    },
328    "infra_step": true,
329    "name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
330  },
331  {
332    "cmd": [
333      "vpython3",
334      "-u",
335      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
336      "--json-output",
337      "/path/to/tmp/json",
338      "glob",
339      "[START_DIR]/skp",
340      "*"
341    ],
342    "infra_step": true,
343    "name": "ls [START_DIR]/skp/*",
344    "~followup_annotations": [
345      "@@@STEP_LOG_LINE@glob@[START_DIR]/skp/bar.jpg@@@",
346      "@@@STEP_LOG_LINE@glob@[START_DIR]/skp/foo.png@@@",
347      "@@@STEP_LOG_END@glob@@@"
348    ]
349  },
350  {
351    "cmd": [
352      "/opt/infra-android/tools/adb",
353      "push",
354      "[START_DIR]/skp/bar.jpg",
355      "[START_DIR]/skp/foo.png",
356      "/sdcard/revenge_of_the_skiabot/skps"
357    ],
358    "cwd": "[START_DIR]/skia",
359    "env": {
360      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
361      "CHROME_HEADLESS": "1",
362      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
363    },
364    "infra_step": true,
365    "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps"
366  },
367  {
368    "cmd": [
369      "/opt/infra-android/tools/adb",
370      "push",
371      "[START_DIR]/tmp/SKP_VERSION",
372      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
373    ],
374    "cwd": "[START_DIR]/skia",
375    "env": {
376      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
377      "CHROME_HEADLESS": "1",
378      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
379    },
380    "infra_step": true,
381    "name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
382  },
383  {
384    "cmd": [
385      "vpython3",
386      "-u",
387      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
388      "--json-output",
389      "/path/to/tmp/json",
390      "copy",
391      "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
392      "/path/to/tmp/"
393    ],
394    "infra_step": true,
395    "name": "Get skimage VERSION",
396    "~followup_annotations": [
397      "@@@STEP_LOG_LINE@VERSION@42@@@",
398      "@@@STEP_LOG_END@VERSION@@@"
399    ]
400  },
401  {
402    "cmd": [
403      "vpython3",
404      "-u",
405      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
406      "--json-output",
407      "/path/to/tmp/json",
408      "copy",
409      "42",
410      "[START_DIR]/tmp/SK_IMAGE_VERSION"
411    ],
412    "infra_step": true,
413    "name": "write SK_IMAGE_VERSION",
414    "~followup_annotations": [
415      "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@",
416      "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@"
417    ]
418  },
419  {
420    "cmd": [
421      "/opt/infra-android/tools/adb",
422      "shell",
423      "test",
424      "-f",
425      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
426    ],
427    "cwd": "[START_DIR]/skia",
428    "env": {
429      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
430      "CHROME_HEADLESS": "1",
431      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
432    },
433    "infra_step": true,
434    "name": "check if /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION exists"
435  },
436  {
437    "cmd": [
438      "/opt/infra-android/tools/adb",
439      "shell",
440      "cat",
441      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
442    ],
443    "cwd": "[START_DIR]/skia",
444    "env": {
445      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
446      "CHROME_HEADLESS": "1",
447      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
448    },
449    "infra_step": true,
450    "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
451  },
452  {
453    "cmd": [
454      "python3",
455      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
456      "/opt/infra-android/tools/adb",
457      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
458    ],
459    "env": {
460      "CHROME_HEADLESS": "1",
461      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
462    },
463    "infra_step": true,
464    "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
465  },
466  {
467    "cmd": [
468      "python3",
469      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
470      "/opt/infra-android/tools/adb",
471      "/sdcard/revenge_of_the_skiabot/images"
472    ],
473    "env": {
474      "CHROME_HEADLESS": "1",
475      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
476    },
477    "infra_step": true,
478    "name": "rm /sdcard/revenge_of_the_skiabot/images"
479  },
480  {
481    "cmd": [
482      "/opt/infra-android/tools/adb",
483      "shell",
484      "mkdir",
485      "-p",
486      "/sdcard/revenge_of_the_skiabot/images"
487    ],
488    "cwd": "[START_DIR]/skia",
489    "env": {
490      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
491      "CHROME_HEADLESS": "1",
492      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
493    },
494    "infra_step": true,
495    "name": "mkdir /sdcard/revenge_of_the_skiabot/images"
496  },
497  {
498    "cmd": [
499      "vpython3",
500      "-u",
501      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
502      "--json-output",
503      "/path/to/tmp/json",
504      "glob",
505      "[START_DIR]/skimage",
506      "*"
507    ],
508    "infra_step": true,
509    "name": "ls [START_DIR]/skimage/*",
510    "~followup_annotations": [
511      "@@@STEP_LOG_LINE@glob@[START_DIR]/skimage/bar.jpg@@@",
512      "@@@STEP_LOG_LINE@glob@[START_DIR]/skimage/foo.png@@@",
513      "@@@STEP_LOG_END@glob@@@"
514    ]
515  },
516  {
517    "cmd": [
518      "/opt/infra-android/tools/adb",
519      "push",
520      "[START_DIR]/skimage/bar.jpg",
521      "[START_DIR]/skimage/foo.png",
522      "/sdcard/revenge_of_the_skiabot/images"
523    ],
524    "cwd": "[START_DIR]/skia",
525    "env": {
526      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
527      "CHROME_HEADLESS": "1",
528      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
529    },
530    "infra_step": true,
531    "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images"
532  },
533  {
534    "cmd": [
535      "/opt/infra-android/tools/adb",
536      "push",
537      "[START_DIR]/tmp/SK_IMAGE_VERSION",
538      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
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": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
548  },
549  {
550    "cmd": [
551      "vpython3",
552      "-u",
553      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
554      "--json-output",
555      "/path/to/tmp/json",
556      "copy",
557      "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
558      "/path/to/tmp/"
559    ],
560    "infra_step": true,
561    "name": "Get svg VERSION",
562    "~followup_annotations": [
563      "@@@STEP_LOG_LINE@VERSION@42@@@",
564      "@@@STEP_LOG_END@VERSION@@@"
565    ]
566  },
567  {
568    "cmd": [
569      "vpython3",
570      "-u",
571      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
572      "--json-output",
573      "/path/to/tmp/json",
574      "copy",
575      "42",
576      "[START_DIR]/tmp/SVG_VERSION"
577    ],
578    "infra_step": true,
579    "name": "write SVG_VERSION",
580    "~followup_annotations": [
581      "@@@STEP_LOG_LINE@SVG_VERSION@42@@@",
582      "@@@STEP_LOG_END@SVG_VERSION@@@"
583    ]
584  },
585  {
586    "cmd": [
587      "/opt/infra-android/tools/adb",
588      "shell",
589      "test",
590      "-f",
591      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
592    ],
593    "cwd": "[START_DIR]/skia",
594    "env": {
595      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
596      "CHROME_HEADLESS": "1",
597      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
598    },
599    "infra_step": true,
600    "name": "check if /sdcard/revenge_of_the_skiabot/SVG_VERSION exists"
601  },
602  {
603    "cmd": [
604      "/opt/infra-android/tools/adb",
605      "shell",
606      "cat",
607      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
608    ],
609    "cwd": "[START_DIR]/skia",
610    "env": {
611      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
612      "CHROME_HEADLESS": "1",
613      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
614    },
615    "infra_step": true,
616    "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION"
617  },
618  {
619    "cmd": [
620      "python3",
621      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
622      "/opt/infra-android/tools/adb",
623      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
624    ],
625    "env": {
626      "CHROME_HEADLESS": "1",
627      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
628    },
629    "infra_step": true,
630    "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
631  },
632  {
633    "cmd": [
634      "python3",
635      "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py",
636      "/opt/infra-android/tools/adb",
637      "/sdcard/revenge_of_the_skiabot/svgs"
638    ],
639    "env": {
640      "CHROME_HEADLESS": "1",
641      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
642    },
643    "infra_step": true,
644    "name": "rm /sdcard/revenge_of_the_skiabot/svgs"
645  },
646  {
647    "cmd": [
648      "/opt/infra-android/tools/adb",
649      "shell",
650      "mkdir",
651      "-p",
652      "/sdcard/revenge_of_the_skiabot/svgs"
653    ],
654    "cwd": "[START_DIR]/skia",
655    "env": {
656      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
657      "CHROME_HEADLESS": "1",
658      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
659    },
660    "infra_step": true,
661    "name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
662  },
663  {
664    "cmd": [
665      "vpython3",
666      "-u",
667      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
668      "--json-output",
669      "/path/to/tmp/json",
670      "glob",
671      "[START_DIR]/svg",
672      "*"
673    ],
674    "infra_step": true,
675    "name": "ls [START_DIR]/svg/*",
676    "~followup_annotations": [
677      "@@@STEP_LOG_LINE@glob@[START_DIR]/svg/bar.jpg@@@",
678      "@@@STEP_LOG_LINE@glob@[START_DIR]/svg/foo.png@@@",
679      "@@@STEP_LOG_END@glob@@@"
680    ]
681  },
682  {
683    "cmd": [
684      "/opt/infra-android/tools/adb",
685      "push",
686      "[START_DIR]/svg/bar.jpg",
687      "[START_DIR]/svg/foo.png",
688      "/sdcard/revenge_of_the_skiabot/svgs"
689    ],
690    "cwd": "[START_DIR]/skia",
691    "env": {
692      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
693      "CHROME_HEADLESS": "1",
694      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
695    },
696    "infra_step": true,
697    "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs"
698  },
699  {
700    "cmd": [
701      "/opt/infra-android/tools/adb",
702      "push",
703      "[START_DIR]/tmp/SVG_VERSION",
704      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
705    ],
706    "cwd": "[START_DIR]/skia",
707    "env": {
708      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
709      "CHROME_HEADLESS": "1",
710      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
711    },
712    "infra_step": true,
713    "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
714  },
715  {
716    "cmd": [
717      "vpython3",
718      "-u",
719      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
720      "--json-output",
721      "/path/to/tmp/json",
722      "copy",
723      "set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/dm --some-flag; echo $? >/data/local/tmp/rc",
724      "[START_DIR]/tmp/dm.sh"
725    ],
726    "infra_step": true,
727    "name": "write dm.sh",
728    "~followup_annotations": [
729      "@@@STEP_LOG_LINE@dm.sh@set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/dm --some-flag; echo $? >/data/local/tmp/rc@@@",
730      "@@@STEP_LOG_END@dm.sh@@@"
731    ]
732  },
733  {
734    "cmd": [
735      "/opt/infra-android/tools/adb",
736      "push",
737      "[START_DIR]/tmp/dm.sh",
738      "/data/local/tmp/"
739    ],
740    "cwd": "[START_DIR]/skia",
741    "env": {
742      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
743      "CHROME_HEADLESS": "1",
744      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
745    },
746    "infra_step": true,
747    "name": "push dm.sh"
748  },
749  {
750    "cmd": [
751      "/opt/infra-android/tools/adb",
752      "logcat",
753      "-c"
754    ],
755    "cwd": "[START_DIR]/skia",
756    "env": {
757      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
758      "CHROME_HEADLESS": "1",
759      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
760    },
761    "infra_step": true,
762    "name": "clear log"
763  },
764  {
765    "cmd": [
766      "python3",
767      "RECIPE_MODULE[skia::flavor]/resources/run_sh.py",
768      "/data/local/tmp/",
769      "dm.sh",
770      "/opt/infra-android/tools/adb"
771    ],
772    "name": "dm"
773  },
774  {
775    "cmd": [],
776    "name": "adb pull"
777  },
778  {
779    "cmd": [
780      "/opt/infra-android/tools/adb",
781      "pull",
782      "/sdcard/revenge_of_the_skiabot/dm_out",
783      "[CLEANUP]/adb_pull_tmp_1"
784    ],
785    "cwd": "[START_DIR]/skia",
786    "env": {
787      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
788      "CHROME_HEADLESS": "1",
789      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
790    },
791    "infra_step": true,
792    "name": "adb pull.pull /sdcard/revenge_of_the_skiabot/dm_out",
793    "~followup_annotations": [
794      "@@@STEP_NEST_LEVEL@1@@@"
795    ]
796  },
797  {
798    "cmd": [
799      "vpython3",
800      "-u",
801      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
802      "--json-output",
803      "/path/to/tmp/json",
804      "glob",
805      "[CLEANUP]/adb_pull_tmp_1",
806      "dm_out/*"
807    ],
808    "infra_step": true,
809    "name": "adb pull.list pulled files",
810    "~followup_annotations": [
811      "@@@STEP_NEST_LEVEL@1@@@",
812      "@@@STEP_LOG_LINE@glob@[CLEANUP]/adb_pull_tmp_1/1.png@@@",
813      "@@@STEP_LOG_LINE@glob@[CLEANUP]/adb_pull_tmp_1/2.png@@@",
814      "@@@STEP_LOG_END@glob@@@"
815    ]
816  },
817  {
818    "cmd": [
819      "vpython3",
820      "-u",
821      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
822      "--json-output",
823      "/path/to/tmp/json",
824      "copy",
825      "[CLEANUP]/adb_pull_tmp_1/1.png",
826      "[START_DIR]/[SWARM_OUT_DIR]"
827    ],
828    "infra_step": true,
829    "name": "adb pull.copy 1.png",
830    "~followup_annotations": [
831      "@@@STEP_NEST_LEVEL@1@@@"
832    ]
833  },
834  {
835    "cmd": [
836      "vpython3",
837      "-u",
838      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
839      "--json-output",
840      "/path/to/tmp/json",
841      "copy",
842      "[CLEANUP]/adb_pull_tmp_1/2.png",
843      "[START_DIR]/[SWARM_OUT_DIR]"
844    ],
845    "infra_step": true,
846    "name": "adb pull.copy 2.png",
847    "~followup_annotations": [
848      "@@@STEP_NEST_LEVEL@1@@@"
849    ]
850  },
851  {
852    "cmd": [
853      "/opt/infra-android/tools/adb",
854      "reboot"
855    ],
856    "env": {
857      "CHROME_HEADLESS": "1",
858      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
859    },
860    "infra_step": true,
861    "name": "adb reboot device",
862    "timeout": 30
863  },
864  {
865    "cmd": [
866      "/opt/infra-android/tools/adb",
867      "wait-for-device",
868      "shell",
869      "while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done"
870    ],
871    "env": {
872      "CHROME_HEADLESS": "1",
873      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
874    },
875    "name": "wait for device after rebooting",
876    "timeout": 180
877  },
878  {
879    "cmd": [
880      "python3",
881      "RECIPE_MODULE[skia::flavor]/resources/dump_adb_log.py",
882      "[START_DIR]/build",
883      "/opt/infra-android/tools/adb"
884    ],
885    "env": {
886      "CHROME_HEADLESS": "1",
887      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
888    },
889    "infra_step": true,
890    "name": "dump log",
891    "timeout": 300
892  },
893  {
894    "name": "$result"
895  }
896]