• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[
2  {
3    "cmd": [
4      "vpython",
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      "0777",
12      "[START_DIR]/tmp"
13    ],
14    "infra_step": true,
15    "name": "makedirs tmp_dir"
16  },
17  {
18    "cmd": [
19      "idevicepair",
20      "validate"
21    ],
22    "env": {
23      "CHROME_HEADLESS": "1",
24      "IOS_BUNDLE_ID": "com.google.nanobench",
25      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
26      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
27    },
28    "infra_step": true,
29    "name": "check if device is paired"
30  },
31  {
32    "cmd": [
33      "ideviceimagemounter",
34      "--list"
35    ],
36    "env": {
37      "CHROME_HEADLESS": "1",
38      "IOS_BUNDLE_ID": "com.google.nanobench",
39      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
40      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
41    },
42    "name": "list mounted image"
43  },
44  {
45    "cmd": [
46      "vpython",
47      "-u",
48      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
49      "--json-output",
50      "/path/to/tmp/json",
51      "glob",
52      "[START_DIR]",
53      "ios-dev-image*"
54    ],
55    "env": {
56      "IOS_BUNDLE_ID": "com.google.nanobench",
57      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
58    },
59    "infra_step": true,
60    "name": "locate ios-dev-image package",
61    "~followup_annotations": [
62      "@@@STEP_LOG_LINE@glob@[START_DIR]/ios-dev-image-13.2@@@",
63      "@@@STEP_LOG_END@glob@@@"
64    ]
65  },
66  {
67    "cmd": [
68      "vpython",
69      "-u",
70      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
71      "--json-output",
72      "/path/to/tmp/json",
73      "listdir",
74      "[START_DIR]/ios-dev-image-13.2"
75    ],
76    "env": {
77      "IOS_BUNDLE_ID": "com.google.nanobench",
78      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
79    },
80    "infra_step": true,
81    "name": "locate image and signature",
82    "~followup_annotations": [
83      "@@@STEP_LOG_LINE@listdir@[START_DIR]/ios-dev-image-13.2/DeveloperDiskImage.dmg@@@",
84      "@@@STEP_LOG_LINE@listdir@[START_DIR]/ios-dev-image-13.2/DeveloperDiskImage.dmg.signature@@@",
85      "@@@STEP_LOG_END@listdir@@@"
86    ]
87  },
88  {
89    "cmd": [
90      "ideviceimagemounter",
91      "[START_DIR]/ios-dev-image-13.2/DeveloperDiskImage.dmg",
92      "[START_DIR]/ios-dev-image-13.2/DeveloperDiskImage.dmg.signature"
93    ],
94    "env": {
95      "CHROME_HEADLESS": "1",
96      "IOS_BUNDLE_ID": "com.google.nanobench",
97      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
98      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
99    },
100    "name": "mount developer image"
101  },
102  {
103    "cmd": [
104      "ideviceinstaller",
105      "-i",
106      "[START_DIR]/build/dm.app"
107    ],
108    "env": {
109      "CHROME_HEADLESS": "1",
110      "IOS_BUNDLE_ID": "com.google.nanobench",
111      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
112      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
113    },
114    "infra_step": true,
115    "name": "install dm"
116  },
117  {
118    "cmd": [
119      "ideviceinstaller",
120      "-i",
121      "[START_DIR]/build/nanobench.app"
122    ],
123    "env": {
124      "CHROME_HEADLESS": "1",
125      "IOS_BUNDLE_ID": "com.google.nanobench",
126      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
127      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
128    },
129    "infra_step": true,
130    "name": "install nanobench"
131  },
132  {
133    "cmd": [
134      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
135      "[START_DIR]/skia/resources",
136      "resources"
137    ],
138    "env": {
139      "CHROME_HEADLESS": "1",
140      "IOS_BUNDLE_ID": "com.google.nanobench",
141      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
142      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
143    },
144    "infra_step": true,
145    "name": "push_if_needed [START_DIR]/skia/resources"
146  },
147  {
148    "cmd": [
149      "vpython",
150      "-u",
151      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
152      "--json-output",
153      "/path/to/tmp/json",
154      "copy",
155      "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
156      "/path/to/tmp/"
157    ],
158    "env": {
159      "IOS_BUNDLE_ID": "com.google.nanobench",
160      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
161    },
162    "infra_step": true,
163    "name": "Get skp VERSION",
164    "~followup_annotations": [
165      "@@@STEP_LOG_LINE@VERSION@42@@@",
166      "@@@STEP_LOG_END@VERSION@@@"
167    ]
168  },
169  {
170    "cmd": [
171      "vpython",
172      "-u",
173      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
174      "--json-output",
175      "/path/to/tmp/json",
176      "copy",
177      "42",
178      "[START_DIR]/tmp/SKP_VERSION"
179    ],
180    "env": {
181      "IOS_BUNDLE_ID": "com.google.nanobench",
182      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
183    },
184    "infra_step": true,
185    "name": "write SKP_VERSION",
186    "~followup_annotations": [
187      "@@@STEP_LOG_LINE@SKP_VERSION@42@@@",
188      "@@@STEP_LOG_END@SKP_VERSION@@@"
189    ]
190  },
191  {
192    "cmd": [
193      "[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
194      "tmp/SKP_VERSION"
195    ],
196    "env": {
197      "CHROME_HEADLESS": "1",
198      "IOS_BUNDLE_ID": "com.google.nanobench",
199      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
200      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
201    },
202    "infra_step": true,
203    "name": "cat_file tmp/SKP_VERSION"
204  },
205  {
206    "cmd": [
207      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
208      "tmp/SKP_VERSION"
209    ],
210    "env": {
211      "CHROME_HEADLESS": "1",
212      "IOS_BUNDLE_ID": "com.google.nanobench",
213      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
214      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
215    },
216    "infra_step": true,
217    "name": "rm tmp/SKP_VERSION"
218  },
219  {
220    "cmd": [
221      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
222      "skps"
223    ],
224    "env": {
225      "CHROME_HEADLESS": "1",
226      "IOS_BUNDLE_ID": "com.google.nanobench",
227      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
228      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
229    },
230    "infra_step": true,
231    "name": "rm skps"
232  },
233  {
234    "cmd": [
235      "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
236      "skps"
237    ],
238    "env": {
239      "CHROME_HEADLESS": "1",
240      "IOS_BUNDLE_ID": "com.google.nanobench",
241      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
242      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
243    },
244    "infra_step": true,
245    "name": "mkdir skps"
246  },
247  {
248    "cmd": [
249      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
250      "[START_DIR]/skp",
251      "skps"
252    ],
253    "env": {
254      "CHROME_HEADLESS": "1",
255      "IOS_BUNDLE_ID": "com.google.nanobench",
256      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
257      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
258    },
259    "infra_step": true,
260    "name": "push_if_needed [START_DIR]/skp"
261  },
262  {
263    "cmd": [
264      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
265      "[START_DIR]/tmp/SKP_VERSION",
266      "tmp/SKP_VERSION"
267    ],
268    "env": {
269      "CHROME_HEADLESS": "1",
270      "IOS_BUNDLE_ID": "com.google.nanobench",
271      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
272      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
273    },
274    "infra_step": true,
275    "name": "push_file [START_DIR]/tmp/SKP_VERSION"
276  },
277  {
278    "cmd": [
279      "vpython",
280      "-u",
281      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
282      "--json-output",
283      "/path/to/tmp/json",
284      "copy",
285      "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
286      "/path/to/tmp/"
287    ],
288    "env": {
289      "IOS_BUNDLE_ID": "com.google.nanobench",
290      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
291    },
292    "infra_step": true,
293    "name": "Get skimage VERSION",
294    "~followup_annotations": [
295      "@@@STEP_LOG_LINE@VERSION@42@@@",
296      "@@@STEP_LOG_END@VERSION@@@"
297    ]
298  },
299  {
300    "cmd": [
301      "vpython",
302      "-u",
303      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
304      "--json-output",
305      "/path/to/tmp/json",
306      "copy",
307      "42",
308      "[START_DIR]/tmp/SK_IMAGE_VERSION"
309    ],
310    "env": {
311      "IOS_BUNDLE_ID": "com.google.nanobench",
312      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
313    },
314    "infra_step": true,
315    "name": "write SK_IMAGE_VERSION",
316    "~followup_annotations": [
317      "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@",
318      "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@"
319    ]
320  },
321  {
322    "cmd": [
323      "[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
324      "tmp/SK_IMAGE_VERSION"
325    ],
326    "env": {
327      "CHROME_HEADLESS": "1",
328      "IOS_BUNDLE_ID": "com.google.nanobench",
329      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
330      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
331    },
332    "infra_step": true,
333    "name": "cat_file tmp/SK_IMAGE_VERSION"
334  },
335  {
336    "cmd": [
337      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
338      "tmp/SK_IMAGE_VERSION"
339    ],
340    "env": {
341      "CHROME_HEADLESS": "1",
342      "IOS_BUNDLE_ID": "com.google.nanobench",
343      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
344      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
345    },
346    "infra_step": true,
347    "name": "rm tmp/SK_IMAGE_VERSION"
348  },
349  {
350    "cmd": [
351      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
352      "images"
353    ],
354    "env": {
355      "CHROME_HEADLESS": "1",
356      "IOS_BUNDLE_ID": "com.google.nanobench",
357      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
358      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
359    },
360    "infra_step": true,
361    "name": "rm images"
362  },
363  {
364    "cmd": [
365      "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
366      "images"
367    ],
368    "env": {
369      "CHROME_HEADLESS": "1",
370      "IOS_BUNDLE_ID": "com.google.nanobench",
371      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
372      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
373    },
374    "infra_step": true,
375    "name": "mkdir images"
376  },
377  {
378    "cmd": [
379      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
380      "[START_DIR]/skimage",
381      "images"
382    ],
383    "env": {
384      "CHROME_HEADLESS": "1",
385      "IOS_BUNDLE_ID": "com.google.nanobench",
386      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
387      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
388    },
389    "infra_step": true,
390    "name": "push_if_needed [START_DIR]/skimage"
391  },
392  {
393    "cmd": [
394      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
395      "[START_DIR]/tmp/SK_IMAGE_VERSION",
396      "tmp/SK_IMAGE_VERSION"
397    ],
398    "env": {
399      "CHROME_HEADLESS": "1",
400      "IOS_BUNDLE_ID": "com.google.nanobench",
401      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
402      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
403    },
404    "infra_step": true,
405    "name": "push_file [START_DIR]/tmp/SK_IMAGE_VERSION"
406  },
407  {
408    "cmd": [
409      "vpython",
410      "-u",
411      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
412      "--json-output",
413      "/path/to/tmp/json",
414      "copy",
415      "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
416      "/path/to/tmp/"
417    ],
418    "env": {
419      "IOS_BUNDLE_ID": "com.google.nanobench",
420      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
421    },
422    "infra_step": true,
423    "name": "Get svg VERSION",
424    "~followup_annotations": [
425      "@@@STEP_LOG_LINE@VERSION@42@@@",
426      "@@@STEP_LOG_END@VERSION@@@"
427    ]
428  },
429  {
430    "cmd": [
431      "vpython",
432      "-u",
433      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
434      "--json-output",
435      "/path/to/tmp/json",
436      "copy",
437      "42",
438      "[START_DIR]/tmp/SVG_VERSION"
439    ],
440    "env": {
441      "IOS_BUNDLE_ID": "com.google.nanobench",
442      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
443    },
444    "infra_step": true,
445    "name": "write SVG_VERSION",
446    "~followup_annotations": [
447      "@@@STEP_LOG_LINE@SVG_VERSION@42@@@",
448      "@@@STEP_LOG_END@SVG_VERSION@@@"
449    ]
450  },
451  {
452    "cmd": [
453      "[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
454      "tmp/SVG_VERSION"
455    ],
456    "env": {
457      "CHROME_HEADLESS": "1",
458      "IOS_BUNDLE_ID": "com.google.nanobench",
459      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
460      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
461    },
462    "infra_step": true,
463    "name": "cat_file tmp/SVG_VERSION"
464  },
465  {
466    "cmd": [
467      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
468      "tmp/SVG_VERSION"
469    ],
470    "env": {
471      "CHROME_HEADLESS": "1",
472      "IOS_BUNDLE_ID": "com.google.nanobench",
473      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
474      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
475    },
476    "infra_step": true,
477    "name": "rm tmp/SVG_VERSION"
478  },
479  {
480    "cmd": [
481      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
482      "svgs"
483    ],
484    "env": {
485      "CHROME_HEADLESS": "1",
486      "IOS_BUNDLE_ID": "com.google.nanobench",
487      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
488      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
489    },
490    "infra_step": true,
491    "name": "rm svgs"
492  },
493  {
494    "cmd": [
495      "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
496      "svgs"
497    ],
498    "env": {
499      "CHROME_HEADLESS": "1",
500      "IOS_BUNDLE_ID": "com.google.nanobench",
501      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
502      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
503    },
504    "infra_step": true,
505    "name": "mkdir svgs"
506  },
507  {
508    "cmd": [
509      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
510      "[START_DIR]/svg",
511      "svgs"
512    ],
513    "env": {
514      "CHROME_HEADLESS": "1",
515      "IOS_BUNDLE_ID": "com.google.nanobench",
516      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
517      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
518    },
519    "infra_step": true,
520    "name": "push_if_needed [START_DIR]/svg"
521  },
522  {
523    "cmd": [
524      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
525      "[START_DIR]/tmp/SVG_VERSION",
526      "tmp/SVG_VERSION"
527    ],
528    "env": {
529      "CHROME_HEADLESS": "1",
530      "IOS_BUNDLE_ID": "com.google.nanobench",
531      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
532      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
533    },
534    "infra_step": true,
535    "name": "push_file [START_DIR]/tmp/SVG_VERSION"
536  },
537  {
538    "cmd": [
539      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
540      "perf"
541    ],
542    "env": {
543      "CHROME_HEADLESS": "1",
544      "IOS_BUNDLE_ID": "com.google.nanobench",
545      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
546      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
547    },
548    "infra_step": true,
549    "name": "rm perf"
550  },
551  {
552    "cmd": [
553      "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
554      "perf"
555    ],
556    "env": {
557      "CHROME_HEADLESS": "1",
558      "IOS_BUNDLE_ID": "com.google.nanobench",
559      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
560      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
561    },
562    "infra_step": true,
563    "name": "mkdir perf"
564  },
565  {
566    "cmd": [
567      "python",
568      "-u",
569      "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
570    ],
571    "env": {
572      "IOS_BUNDLE_ID": "com.google.nanobench",
573      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
574    },
575    "name": "get swarming bot id",
576    "~followup_annotations": [
577      "@@@STEP_LOG_LINE@python.inline@import os@@@",
578      "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
579      "@@@STEP_LOG_END@python.inline@@@"
580    ]
581  },
582  {
583    "cmd": [
584      "python",
585      "-u",
586      "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
587    ],
588    "env": {
589      "IOS_BUNDLE_ID": "com.google.nanobench",
590      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
591    },
592    "name": "get swarming task id",
593    "~followup_annotations": [
594      "@@@STEP_LOG_LINE@python.inline@import os@@@",
595      "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
596      "@@@STEP_LOG_END@python.inline@@@"
597    ]
598  },
599  {
600    "cmd": [
601      "idevicedebug",
602      "run",
603      "com.google.nanobench",
604      "-i",
605      "resources",
606      "--skps",
607      "skps",
608      "--images",
609      "images/nanobench",
610      "--svgs",
611      "svgs",
612      "--pre_log",
613      "--images",
614      "--gpuStatsDump",
615      "true",
616      "--scales",
617      "1.0",
618      "1.1",
619      "--skps",
620      "ignore_skps",
621      "--nocpu",
622      "--config",
623      "gles",
624      "glessrgb",
625      "--match",
626      "~blurroundrect",
627      "~patch_grid",
628      "~desk_carsvg",
629      "~keymobi",
630      "~path_hairline",
631      "~GLInstancedArraysBench",
632      "~inc0.gif",
633      "~inc1.gif",
634      "~incInterlaced.gif",
635      "~inc0.jpg",
636      "~incGray.jpg",
637      "~inc0.wbmp",
638      "~inc1.wbmp",
639      "~inc0.webp",
640      "~inc1.webp",
641      "~inc0.ico",
642      "~inc1.ico",
643      "~inc0.png",
644      "~inc1.png",
645      "~inc2.png",
646      "~inc12.png",
647      "~inc13.png",
648      "~inc14.png",
649      "~inc0.webp",
650      "~inc1.webp",
651      "--outResultsFile",
652      "perf/nanobench_abc123_1337000001.json",
653      "--properties",
654      "gitHash",
655      "abc123",
656      "swarming_bot_id",
657      "skia-bot-123",
658      "swarming_task_id",
659      "123456",
660      "--key",
661      "arch",
662      "arm64",
663      "compiler",
664      "Clang",
665      "cpu_or_gpu",
666      "GPU",
667      "cpu_or_gpu_value",
668      "PowerVRGT7800",
669      "model",
670      "iPadPro",
671      "os",
672      "iOS"
673    ],
674    "env": {
675      "CHROME_HEADLESS": "1",
676      "IOS_BUNDLE_ID": "com.google.nanobench",
677      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
678      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
679    },
680    "name": "nanobench"
681  },
682  {
683    "cmd": [
684      "vpython",
685      "-u",
686      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
687      "--json-output",
688      "/path/to/tmp/json",
689      "ensure-directory",
690      "--mode",
691      "0777",
692      "[START_DIR]/[SWARM_OUT_DIR]"
693    ],
694    "env": {
695      "IOS_BUNDLE_ID": "com.google.nanobench",
696      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
697    },
698    "infra_step": true,
699    "name": "makedirs perf_dir"
700  },
701  {
702    "cmd": [
703      "[START_DIR]/skia/platform_tools/ios/bin/ios_pull_if_needed",
704      "perf",
705      "[START_DIR]/[SWARM_OUT_DIR]"
706    ],
707    "env": {
708      "CHROME_HEADLESS": "1",
709      "IOS_BUNDLE_ID": "com.google.nanobench",
710      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
711      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
712    },
713    "infra_step": true,
714    "name": "pull_if_needed perf"
715  },
716  {
717    "name": "$result"
718  }
719]