• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[
2  {
3    "cmd": [
4      "ios.py"
5    ],
6    "env": {
7      "BUILDTYPE": "Release",
8      "CHROME_HEADLESS": "1",
9      "IOS_BUNDLE_ID": "com.google.dm",
10      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
11      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
12      "SKIA_OUT": "[START_DIR]/out"
13    },
14    "infra_step": true,
15    "name": "setup_device"
16  },
17  {
18    "cmd": [
19      "ideviceinstaller",
20      "-i",
21      "[START_DIR]/out/Release/dm.app"
22    ],
23    "env": {
24      "BUILDTYPE": "Release",
25      "CHROME_HEADLESS": "1",
26      "IOS_BUNDLE_ID": "com.google.dm",
27      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
28      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
29      "SKIA_OUT": "[START_DIR]/out"
30    },
31    "infra_step": true,
32    "name": "install_dm"
33  },
34  {
35    "cmd": [
36      "ideviceinstaller",
37      "-i",
38      "[START_DIR]/out/Release/nanobench.app"
39    ],
40    "env": {
41      "BUILDTYPE": "Release",
42      "CHROME_HEADLESS": "1",
43      "IOS_BUNDLE_ID": "com.google.dm",
44      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
45      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
46      "SKIA_OUT": "[START_DIR]/out"
47    },
48    "infra_step": true,
49    "name": "install_nanobench"
50  },
51  {
52    "cmd": [
53      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
54      "[START_DIR]/skia/resources",
55      "resources"
56    ],
57    "env": {
58      "BUILDTYPE": "Release",
59      "CHROME_HEADLESS": "1",
60      "IOS_BUNDLE_ID": "com.google.dm",
61      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
62      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
63      "SKIA_OUT": "[START_DIR]/out"
64    },
65    "infra_step": true,
66    "name": "push_if_needed [START_DIR]/skia/resources"
67  },
68  {
69    "cmd": [
70      "python",
71      "-u",
72      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
73      "--json-output",
74      "/path/to/tmp/json",
75      "copy",
76      "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
77      "/path/to/tmp/"
78    ],
79    "env": {
80      "IOS_BUNDLE_ID": "com.google.dm",
81      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
82    },
83    "infra_step": true,
84    "name": "Get downloaded SKP VERSION"
85  },
86  {
87    "cmd": [
88      "python",
89      "-u",
90      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
91      "--json-output",
92      "/path/to/tmp/json",
93      "copy",
94      "42",
95      "[START_DIR]/tmp/SKP_VERSION"
96    ],
97    "env": {
98      "IOS_BUNDLE_ID": "com.google.dm",
99      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
100    },
101    "infra_step": true,
102    "name": "write SKP_VERSION"
103  },
104  {
105    "cmd": [
106      "[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
107      "tmp/SKP_VERSION"
108    ],
109    "env": {
110      "BUILDTYPE": "Release",
111      "CHROME_HEADLESS": "1",
112      "IOS_BUNDLE_ID": "com.google.dm",
113      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
114      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
115      "SKIA_OUT": "[START_DIR]/out"
116    },
117    "infra_step": true,
118    "name": "cat_file tmp/SKP_VERSION",
119    "stdout": "/path/to/tmp/"
120  },
121  {
122    "cmd": [
123      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
124      "tmp/SKP_VERSION"
125    ],
126    "env": {
127      "BUILDTYPE": "Release",
128      "CHROME_HEADLESS": "1",
129      "IOS_BUNDLE_ID": "com.google.dm",
130      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
131      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
132      "SKIA_OUT": "[START_DIR]/out"
133    },
134    "infra_step": true,
135    "name": "rm tmp/SKP_VERSION"
136  },
137  {
138    "cmd": [
139      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
140      "skps"
141    ],
142    "env": {
143      "BUILDTYPE": "Release",
144      "CHROME_HEADLESS": "1",
145      "IOS_BUNDLE_ID": "com.google.dm",
146      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
147      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
148      "SKIA_OUT": "[START_DIR]/out"
149    },
150    "infra_step": true,
151    "name": "rm skps"
152  },
153  {
154    "cmd": [
155      "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
156      "skps"
157    ],
158    "env": {
159      "BUILDTYPE": "Release",
160      "CHROME_HEADLESS": "1",
161      "IOS_BUNDLE_ID": "com.google.dm",
162      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
163      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
164      "SKIA_OUT": "[START_DIR]/out"
165    },
166    "infra_step": true,
167    "name": "mkdir skps"
168  },
169  {
170    "cmd": [
171      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
172      "[START_DIR]/skp",
173      "skps"
174    ],
175    "env": {
176      "BUILDTYPE": "Release",
177      "CHROME_HEADLESS": "1",
178      "IOS_BUNDLE_ID": "com.google.dm",
179      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
180      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
181      "SKIA_OUT": "[START_DIR]/out"
182    },
183    "infra_step": true,
184    "name": "push_if_needed [START_DIR]/skp"
185  },
186  {
187    "cmd": [
188      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
189      "[START_DIR]/tmp/SKP_VERSION",
190      "tmp/SKP_VERSION"
191    ],
192    "env": {
193      "BUILDTYPE": "Release",
194      "CHROME_HEADLESS": "1",
195      "IOS_BUNDLE_ID": "com.google.dm",
196      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
197      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
198      "SKIA_OUT": "[START_DIR]/out"
199    },
200    "infra_step": true,
201    "name": "push_file [START_DIR]/tmp/SKP_VERSION"
202  },
203  {
204    "cmd": [
205      "python",
206      "-u",
207      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
208      "--json-output",
209      "/path/to/tmp/json",
210      "copy",
211      "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
212      "/path/to/tmp/"
213    ],
214    "env": {
215      "IOS_BUNDLE_ID": "com.google.dm",
216      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
217    },
218    "infra_step": true,
219    "name": "Get downloaded skimage VERSION"
220  },
221  {
222    "cmd": [
223      "python",
224      "-u",
225      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
226      "--json-output",
227      "/path/to/tmp/json",
228      "copy",
229      "42",
230      "[START_DIR]/tmp/SK_IMAGE_VERSION"
231    ],
232    "env": {
233      "IOS_BUNDLE_ID": "com.google.dm",
234      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
235    },
236    "infra_step": true,
237    "name": "write SK_IMAGE_VERSION"
238  },
239  {
240    "cmd": [
241      "[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
242      "tmp/SK_IMAGE_VERSION"
243    ],
244    "env": {
245      "BUILDTYPE": "Release",
246      "CHROME_HEADLESS": "1",
247      "IOS_BUNDLE_ID": "com.google.dm",
248      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
249      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
250      "SKIA_OUT": "[START_DIR]/out"
251    },
252    "infra_step": true,
253    "name": "cat_file tmp/SK_IMAGE_VERSION",
254    "stdout": "/path/to/tmp/"
255  },
256  {
257    "cmd": [
258      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
259      "tmp/SK_IMAGE_VERSION"
260    ],
261    "env": {
262      "BUILDTYPE": "Release",
263      "CHROME_HEADLESS": "1",
264      "IOS_BUNDLE_ID": "com.google.dm",
265      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
266      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
267      "SKIA_OUT": "[START_DIR]/out"
268    },
269    "infra_step": true,
270    "name": "rm tmp/SK_IMAGE_VERSION"
271  },
272  {
273    "cmd": [
274      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
275      "images"
276    ],
277    "env": {
278      "BUILDTYPE": "Release",
279      "CHROME_HEADLESS": "1",
280      "IOS_BUNDLE_ID": "com.google.dm",
281      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
282      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
283      "SKIA_OUT": "[START_DIR]/out"
284    },
285    "infra_step": true,
286    "name": "rm images"
287  },
288  {
289    "cmd": [
290      "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
291      "images"
292    ],
293    "env": {
294      "BUILDTYPE": "Release",
295      "CHROME_HEADLESS": "1",
296      "IOS_BUNDLE_ID": "com.google.dm",
297      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
298      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
299      "SKIA_OUT": "[START_DIR]/out"
300    },
301    "infra_step": true,
302    "name": "mkdir images"
303  },
304  {
305    "cmd": [
306      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
307      "[START_DIR]/skimage",
308      "images"
309    ],
310    "env": {
311      "BUILDTYPE": "Release",
312      "CHROME_HEADLESS": "1",
313      "IOS_BUNDLE_ID": "com.google.dm",
314      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
315      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
316      "SKIA_OUT": "[START_DIR]/out"
317    },
318    "infra_step": true,
319    "name": "push_if_needed [START_DIR]/skimage"
320  },
321  {
322    "cmd": [
323      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
324      "[START_DIR]/tmp/SK_IMAGE_VERSION",
325      "tmp/SK_IMAGE_VERSION"
326    ],
327    "env": {
328      "BUILDTYPE": "Release",
329      "CHROME_HEADLESS": "1",
330      "IOS_BUNDLE_ID": "com.google.dm",
331      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
332      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
333      "SKIA_OUT": "[START_DIR]/out"
334    },
335    "infra_step": true,
336    "name": "push_file [START_DIR]/tmp/SK_IMAGE_VERSION"
337  },
338  {
339    "cmd": [
340      "python",
341      "-u",
342      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
343      "--json-output",
344      "/path/to/tmp/json",
345      "copy",
346      "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
347      "/path/to/tmp/"
348    ],
349    "env": {
350      "IOS_BUNDLE_ID": "com.google.dm",
351      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
352    },
353    "infra_step": true,
354    "name": "Get downloaded SVG VERSION"
355  },
356  {
357    "cmd": [
358      "python",
359      "-u",
360      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
361      "--json-output",
362      "/path/to/tmp/json",
363      "copy",
364      "42",
365      "[START_DIR]/tmp/SVG_VERSION"
366    ],
367    "env": {
368      "IOS_BUNDLE_ID": "com.google.dm",
369      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
370    },
371    "infra_step": true,
372    "name": "write SVG_VERSION"
373  },
374  {
375    "cmd": [
376      "[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
377      "tmp/SVG_VERSION"
378    ],
379    "env": {
380      "BUILDTYPE": "Release",
381      "CHROME_HEADLESS": "1",
382      "IOS_BUNDLE_ID": "com.google.dm",
383      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
384      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
385      "SKIA_OUT": "[START_DIR]/out"
386    },
387    "infra_step": true,
388    "name": "cat_file tmp/SVG_VERSION",
389    "stdout": "/path/to/tmp/"
390  },
391  {
392    "cmd": [
393      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
394      "tmp/SVG_VERSION"
395    ],
396    "env": {
397      "BUILDTYPE": "Release",
398      "CHROME_HEADLESS": "1",
399      "IOS_BUNDLE_ID": "com.google.dm",
400      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
401      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
402      "SKIA_OUT": "[START_DIR]/out"
403    },
404    "infra_step": true,
405    "name": "rm tmp/SVG_VERSION"
406  },
407  {
408    "cmd": [
409      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
410      "svgs"
411    ],
412    "env": {
413      "BUILDTYPE": "Release",
414      "CHROME_HEADLESS": "1",
415      "IOS_BUNDLE_ID": "com.google.dm",
416      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
417      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
418      "SKIA_OUT": "[START_DIR]/out"
419    },
420    "infra_step": true,
421    "name": "rm svgs"
422  },
423  {
424    "cmd": [
425      "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
426      "svgs"
427    ],
428    "env": {
429      "BUILDTYPE": "Release",
430      "CHROME_HEADLESS": "1",
431      "IOS_BUNDLE_ID": "com.google.dm",
432      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
433      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
434      "SKIA_OUT": "[START_DIR]/out"
435    },
436    "infra_step": true,
437    "name": "mkdir svgs"
438  },
439  {
440    "cmd": [
441      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
442      "[START_DIR]/svg",
443      "svgs"
444    ],
445    "env": {
446      "BUILDTYPE": "Release",
447      "CHROME_HEADLESS": "1",
448      "IOS_BUNDLE_ID": "com.google.dm",
449      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
450      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
451      "SKIA_OUT": "[START_DIR]/out"
452    },
453    "infra_step": true,
454    "name": "push_if_needed [START_DIR]/svg"
455  },
456  {
457    "cmd": [
458      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
459      "[START_DIR]/tmp/SVG_VERSION",
460      "tmp/SVG_VERSION"
461    ],
462    "env": {
463      "BUILDTYPE": "Release",
464      "CHROME_HEADLESS": "1",
465      "IOS_BUNDLE_ID": "com.google.dm",
466      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
467      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
468      "SKIA_OUT": "[START_DIR]/out"
469    },
470    "infra_step": true,
471    "name": "push_file [START_DIR]/tmp/SVG_VERSION"
472  },
473  {
474    "cmd": [
475      "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
476      "dm"
477    ],
478    "env": {
479      "BUILDTYPE": "Release",
480      "CHROME_HEADLESS": "1",
481      "IOS_BUNDLE_ID": "com.google.dm",
482      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
483      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
484      "SKIA_OUT": "[START_DIR]/out"
485    },
486    "infra_step": true,
487    "name": "rm dm"
488  },
489  {
490    "cmd": [
491      "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
492      "dm"
493    ],
494    "env": {
495      "BUILDTYPE": "Release",
496      "CHROME_HEADLESS": "1",
497      "IOS_BUNDLE_ID": "com.google.dm",
498      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
499      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
500      "SKIA_OUT": "[START_DIR]/out"
501    },
502    "infra_step": true,
503    "name": "mkdir dm"
504  },
505  {
506    "cmd": [
507      "python",
508      "-u",
509      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
510      "--json-output",
511      "/path/to/tmp/json",
512      "ensure-directory",
513      "--mode",
514      "0777",
515      "[START_DIR]/tmp"
516    ],
517    "env": {
518      "IOS_BUNDLE_ID": "com.google.dm",
519      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
520    },
521    "infra_step": true,
522    "name": "makedirs tmp_dir"
523  },
524  {
525    "cmd": [
526      "python",
527      "-u",
528      "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n  try:\n    with contextlib.closing(\n        urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n      hashes = w.read()\n      with open(sys.argv[1], 'w') as f:\n        f.write(hashes)\n        break\n  except Exception as e:\n    print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n    print e\n    if retry == RETRIES:\n      raise\n    waittime = WAIT_BASE * math.pow(2, retry)\n    print 'Retry in %d seconds.' % waittime\n    time.sleep(waittime)\n",
529      "[START_DIR]/tmp/uninteresting_hashes.txt"
530    ],
531    "env": {
532      "BUILDTYPE": "Release",
533      "CHROME_HEADLESS": "1",
534      "IOS_BUNDLE_ID": "com.google.dm",
535      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
536      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
537      "SKIA_OUT": "[START_DIR]/out"
538    },
539    "infra_step": true,
540    "name": "get uninteresting hashes",
541    "~followup_annotations": [
542      "@@@STEP_LOG_LINE@python.inline@@@@",
543      "@@@STEP_LOG_LINE@python.inline@import contextlib@@@",
544      "@@@STEP_LOG_LINE@python.inline@import math@@@",
545      "@@@STEP_LOG_LINE@python.inline@import socket@@@",
546      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
547      "@@@STEP_LOG_LINE@python.inline@import time@@@",
548      "@@@STEP_LOG_LINE@python.inline@import urllib2@@@",
549      "@@@STEP_LOG_LINE@python.inline@@@@",
550      "@@@STEP_LOG_LINE@python.inline@HASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'@@@",
551      "@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@",
552      "@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@",
553      "@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@",
554      "@@@STEP_LOG_LINE@python.inline@@@@",
555      "@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@",
556      "@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@",
557      "@@@STEP_LOG_LINE@python.inline@  try:@@@",
558      "@@@STEP_LOG_LINE@python.inline@    with contextlib.closing(@@@",
559      "@@@STEP_LOG_LINE@python.inline@        urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@",
560      "@@@STEP_LOG_LINE@python.inline@      hashes = w.read()@@@",
561      "@@@STEP_LOG_LINE@python.inline@      with open(sys.argv[1], 'w') as f:@@@",
562      "@@@STEP_LOG_LINE@python.inline@        f.write(hashes)@@@",
563      "@@@STEP_LOG_LINE@python.inline@        break@@@",
564      "@@@STEP_LOG_LINE@python.inline@  except Exception as e:@@@",
565      "@@@STEP_LOG_LINE@python.inline@    print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@",
566      "@@@STEP_LOG_LINE@python.inline@    print e@@@",
567      "@@@STEP_LOG_LINE@python.inline@    if retry == RETRIES:@@@",
568      "@@@STEP_LOG_LINE@python.inline@      raise@@@",
569      "@@@STEP_LOG_LINE@python.inline@    waittime = WAIT_BASE * math.pow(2, retry)@@@",
570      "@@@STEP_LOG_LINE@python.inline@    print 'Retry in %d seconds.' % waittime@@@",
571      "@@@STEP_LOG_LINE@python.inline@    time.sleep(waittime)@@@",
572      "@@@STEP_LOG_END@python.inline@@@"
573    ]
574  },
575  {
576    "cmd": [
577      "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
578      "[START_DIR]/tmp/uninteresting_hashes.txt",
579      "tmp/uninteresting_hashes.txt"
580    ],
581    "env": {
582      "BUILDTYPE": "Release",
583      "CHROME_HEADLESS": "1",
584      "IOS_BUNDLE_ID": "com.google.dm",
585      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
586      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
587      "SKIA_OUT": "[START_DIR]/out"
588    },
589    "infra_step": true,
590    "name": "push_file [START_DIR]/tmp/uninteresting_hashes.txt"
591  },
592  {
593    "cmd": [
594      "python",
595      "-u",
596      "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
597    ],
598    "env": {
599      "IOS_BUNDLE_ID": "com.google.dm",
600      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
601    },
602    "name": "get swarming bot id",
603    "stdout": "/path/to/tmp/",
604    "~followup_annotations": [
605      "@@@STEP_LOG_LINE@python.inline@import os@@@",
606      "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
607      "@@@STEP_LOG_END@python.inline@@@"
608    ]
609  },
610  {
611    "cmd": [
612      "python",
613      "-u",
614      "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
615    ],
616    "env": {
617      "IOS_BUNDLE_ID": "com.google.dm",
618      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
619    },
620    "name": "get swarming task id",
621    "stdout": "/path/to/tmp/",
622    "~followup_annotations": [
623      "@@@STEP_LOG_LINE@python.inline@import os@@@",
624      "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
625      "@@@STEP_LOG_END@python.inline@@@"
626    ]
627  },
628  {
629    "cmd": [
630      "idevice-app-runner",
631      "-s",
632      "com.google.dm",
633      "--args",
634      "--resourcePath",
635      "resources",
636      "--skps",
637      "skps",
638      "--images",
639      "images/dm",
640      "--colorImages",
641      "images/colorspace",
642      "--nameByHash",
643      "--properties",
644      "gitHash",
645      "abc123",
646      "builder",
647      "Test-iOS-Clang-iPadPro-GPU-GT7800-arm64-Release-All",
648      "buildbucket_build_id",
649      "123454321",
650      "swarming_bot_id",
651      "skia-bot-123",
652      "swarming_task_id",
653      "123456",
654      "--svgs",
655      "svgs",
656      "--key",
657      "arch",
658      "arm64",
659      "compiler",
660      "Clang",
661      "configuration",
662      "Release",
663      "cpu_or_gpu",
664      "GPU",
665      "cpu_or_gpu_value",
666      "GT7800",
667      "model",
668      "iPadPro",
669      "os",
670      "iOS",
671      "--uninterestingHashesFile",
672      "tmp/uninteresting_hashes.txt",
673      "--writePath",
674      "dm",
675      "--dont_write",
676      "pdf",
677      "--randomProcessorTest",
678      "--threads",
679      "0",
680      "--nocpu",
681      "--config",
682      "gles",
683      "glesdft",
684      "glessrgb",
685      "--src",
686      "tests",
687      "gm",
688      "image",
689      "colorImage",
690      "svg",
691      "--blacklist",
692      "_",
693      "svg",
694      "_",
695      "svgparse_",
696      "glessrgb",
697      "image",
698      "_",
699      "_",
700      "gles",
701      "skp",
702      "_",
703      "_",
704      "_",
705      "image",
706      "gen_platf",
707      "rgba32abf.bmp",
708      "_",
709      "image",
710      "gen_platf",
711      "rgb24prof.bmp",
712      "_",
713      "image",
714      "gen_platf",
715      "rgb24lprof.bmp",
716      "_",
717      "image",
718      "gen_platf",
719      "8bpp-pixeldata-cropped.bmp",
720      "_",
721      "image",
722      "gen_platf",
723      "4bpp-pixeldata-cropped.bmp",
724      "_",
725      "image",
726      "gen_platf",
727      "32bpp-pixeldata-cropped.bmp",
728      "_",
729      "image",
730      "gen_platf",
731      "24bpp-pixeldata-cropped.bmp",
732      "_",
733      "image",
734      "gen_platf",
735      "frame_larger_than_image.gif",
736      "_",
737      "image",
738      "gen_platf",
739      "inc0.png",
740      "_",
741      "image",
742      "gen_platf",
743      "inc1.png",
744      "_",
745      "image",
746      "gen_platf",
747      "inc2.png",
748      "_",
749      "image",
750      "gen_platf",
751      "inc3.png",
752      "_",
753      "image",
754      "gen_platf",
755      "inc4.png",
756      "_",
757      "image",
758      "gen_platf",
759      "inc5.png",
760      "_",
761      "image",
762      "gen_platf",
763      "inc6.png",
764      "_",
765      "image",
766      "gen_platf",
767      "inc7.png",
768      "_",
769      "image",
770      "gen_platf",
771      "inc8.png",
772      "_",
773      "image",
774      "gen_platf",
775      "inc9.png",
776      "_",
777      "image",
778      "gen_platf",
779      "inc10.png",
780      "_",
781      "image",
782      "gen_platf",
783      "inc11.png",
784      "_",
785      "image",
786      "gen_platf",
787      "inc12.png",
788      "_",
789      "image",
790      "gen_platf",
791      "inc13.png",
792      "_",
793      "image",
794      "gen_platf",
795      "inc14.png",
796      "_",
797      "image",
798      "gen_platf",
799      "incInterlaced.gif",
800      "_",
801      "image",
802      "gen_platf",
803      "inc1.gif",
804      "_",
805      "image",
806      "gen_platf",
807      "inc0.gif",
808      "_",
809      "image",
810      "gen_platf",
811      "butterfly.gif",
812      "_",
813      "test",
814      "_",
815      "GrShape",
816      "_",
817      "image",
818      "_",
819      "interlaced1.png",
820      "_",
821      "image",
822      "_",
823      "interlaced2.png",
824      "_",
825      "image",
826      "_",
827      "interlaced3.png",
828      "_",
829      "image",
830      "_",
831      ".arw",
832      "_",
833      "image",
834      "_",
835      ".cr2",
836      "_",
837      "image",
838      "_",
839      ".dng",
840      "_",
841      "image",
842      "_",
843      ".nef",
844      "_",
845      "image",
846      "_",
847      ".nrw",
848      "_",
849      "image",
850      "_",
851      ".orf",
852      "_",
853      "image",
854      "_",
855      ".raf",
856      "_",
857      "image",
858      "_",
859      ".rw2",
860      "_",
861      "image",
862      "_",
863      ".pef",
864      "_",
865      "image",
866      "_",
867      ".srw",
868      "_",
869      "image",
870      "_",
871      ".ARW",
872      "_",
873      "image",
874      "_",
875      ".CR2",
876      "_",
877      "image",
878      "_",
879      ".DNG",
880      "_",
881      "image",
882      "_",
883      ".NEF",
884      "_",
885      "image",
886      "_",
887      ".NRW",
888      "_",
889      "image",
890      "_",
891      ".ORF",
892      "_",
893      "image",
894      "_",
895      ".RAF",
896      "_",
897      "image",
898      "_",
899      ".RW2",
900      "_",
901      "image",
902      "_",
903      ".PEF",
904      "_",
905      "image",
906      "_",
907      ".SRW",
908      "--nonativeFonts",
909      "--verbose"
910    ],
911    "env": {
912      "BUILDTYPE": "Release",
913      "CHROME_HEADLESS": "1",
914      "IOS_BUNDLE_ID": "com.google.dm",
915      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
916      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
917      "SKIA_OUT": "[START_DIR]/out"
918    },
919    "name": "dm"
920  },
921  {
922    "cmd": [
923      "[START_DIR]/skia/platform_tools/ios/bin/ios_pull_if_needed",
924      "dm",
925      "[CUSTOM_[SWARM_OUT_DIR]]/dm"
926    ],
927    "env": {
928      "BUILDTYPE": "Release",
929      "CHROME_HEADLESS": "1",
930      "IOS_BUNDLE_ID": "com.google.dm",
931      "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
932      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
933      "SKIA_OUT": "[START_DIR]/out"
934    },
935    "infra_step": true,
936    "name": "pull_if_needed dm"
937  },
938  {
939    "name": "$result",
940    "recipe_result": null,
941    "status_code": 0
942  }
943]