Home | History | Annotate | Download | only in test.expected
      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 (a] python.inline@@@@",
    543       "@@@STEP_LOG_LINE (a] python.inline@import contextlib@@@",
    544       "@@@STEP_LOG_LINE (a] python.inline@import math@@@",
    545       "@@@STEP_LOG_LINE (a] python.inline@import socket@@@",
    546       "@@@STEP_LOG_LINE (a] python.inline@import sys@@@",
    547       "@@@STEP_LOG_LINE (a] python.inline@import time@@@",
    548       "@@@STEP_LOG_LINE (a] python.inline@import urllib2@@@",
    549       "@@@STEP_LOG_LINE (a] python.inline@@@@",
    550       "@@@STEP_LOG_LINE (a] python.inline@HASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'@@@",
    551       "@@@STEP_LOG_LINE (a] python.inline@RETRIES = 5@@@",
    552       "@@@STEP_LOG_LINE (a] python.inline@TIMEOUT = 60@@@",
    553       "@@@STEP_LOG_LINE (a] python.inline@WAIT_BASE = 15@@@",
    554       "@@@STEP_LOG_LINE (a] python.inline@@@@",
    555       "@@@STEP_LOG_LINE (a] python.inline@socket.setdefaulttimeout(TIMEOUT)@@@",
    556       "@@@STEP_LOG_LINE (a] python.inline@for retry in range(RETRIES):@@@",
    557       "@@@STEP_LOG_LINE (a] python.inline@  try:@@@",
    558       "@@@STEP_LOG_LINE (a] python.inline@    with contextlib.closing(@@@",
    559       "@@@STEP_LOG_LINE (a] python.inline@        urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@",
    560       "@@@STEP_LOG_LINE (a] python.inline@      hashes = w.read()@@@",
    561       "@@@STEP_LOG_LINE (a] python.inline@      with open(sys.argv[1], 'w') as f:@@@",
    562       "@@@STEP_LOG_LINE (a] python.inline@        f.write(hashes)@@@",
    563       "@@@STEP_LOG_LINE (a] python.inline@        break@@@",
    564       "@@@STEP_LOG_LINE (a] python.inline@  except Exception as e:@@@",
    565       "@@@STEP_LOG_LINE (a] python.inline@    print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@",
    566       "@@@STEP_LOG_LINE (a] python.inline@    print e@@@",
    567       "@@@STEP_LOG_LINE (a] python.inline@    if retry == RETRIES:@@@",
    568       "@@@STEP_LOG_LINE (a] python.inline@      raise@@@",
    569       "@@@STEP_LOG_LINE (a] python.inline@    waittime = WAIT_BASE * math.pow(2, retry)@@@",
    570       "@@@STEP_LOG_LINE (a] python.inline@    print 'Retry in %d seconds.' % waittime@@@",
    571       "@@@STEP_LOG_LINE (a] python.inline@    time.sleep(waittime)@@@",
    572       "@@@STEP_LOG_END (a] 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 (a] python.inline@import os@@@",
    606       "@@@STEP_LOG_LINE (a] python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
    607       "@@@STEP_LOG_END (a] 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 (a] python.inline@import os@@@",
    624       "@@@STEP_LOG_LINE (a] python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
    625       "@@@STEP_LOG_END (a] 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 ]