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