Home | History | Annotate | Download | only in ct_skps.expected
      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       "[CUSTOM_/_B_WORK]"
     13     ],
     14     "infra_step": true,
     15     "name": "makedirs checkout_path"
     16   },
     17   {
     18     "cmd": [
     19       "python",
     20       "-u",
     21       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
     22       "--json-output",
     23       "/path/to/tmp/json",
     24       "remove",
     25       "[CUSTOM_/_B_WORK]/.gclient_entries"
     26     ],
     27     "infra_step": true,
     28     "name": "remove [CUSTOM_/_B_WORK]/.gclient_entries"
     29   },
     30   {
     31     "cmd": [
     32       "python",
     33       "-u",
     34       "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
     35       "--spec-path",
     36       "cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
     37       "--patch_root",
     38       "skia",
     39       "--revision_mapping_file",
     40       "{\"got_revision\": \"skia\"}",
     41       "--git-cache-dir",
     42       "[CUSTOM_/_B_CACHE]",
     43       "--cleanup-dir",
     44       "[CLEANUP]/bot_update",
     45       "--output_json",
     46       "/path/to/tmp/json",
     47       "--revision",
     48       "skia@abc123"
     49     ],
     50     "cwd": "[CUSTOM_/_B_WORK]",
     51     "env_prefixes": {
     52       "PATH": [
     53         "RECIPE_PACKAGE_REPO[depot_tools]"
     54       ]
     55     },
     56     "infra_step": true,
     57     "name": "bot_update",
     58     "~followup_annotations": [
     59       "@@@STEP_TEXT@Some step text@@@",
     60       "@@@STEP_LOG_LINE (a] json.output@{@@@",
     61       "@@@STEP_LOG_LINE (a] json.output@  \"did_run\": true, @@@",
     62       "@@@STEP_LOG_LINE (a] json.output@  \"fixed_revisions\": {@@@",
     63       "@@@STEP_LOG_LINE (a] json.output@    \"skia\": \"abc123\"@@@",
     64       "@@@STEP_LOG_LINE (a] json.output@  }, @@@",
     65       "@@@STEP_LOG_LINE (a] json.output@  \"manifest\": {@@@",
     66       "@@@STEP_LOG_LINE (a] json.output@    \"skia\": {@@@",
     67       "@@@STEP_LOG_LINE (a] json.output@      \"repository\": \"https://fake.org/skia.git\", @@@",
     68       "@@@STEP_LOG_LINE (a] json.output@      \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
     69       "@@@STEP_LOG_LINE (a] json.output@    }@@@",
     70       "@@@STEP_LOG_LINE (a] json.output@  }, @@@",
     71       "@@@STEP_LOG_LINE (a] json.output@  \"patch_failure\": false, @@@",
     72       "@@@STEP_LOG_LINE (a] json.output@  \"patch_root\": \"skia\", @@@",
     73       "@@@STEP_LOG_LINE (a] json.output@  \"properties\": {@@@",
     74       "@@@STEP_LOG_LINE (a] json.output@    \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
     75       "@@@STEP_LOG_LINE (a] json.output@    \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
     76       "@@@STEP_LOG_LINE (a] json.output@  }, @@@",
     77       "@@@STEP_LOG_LINE (a] json.output@  \"root\": \"skia\", @@@",
     78       "@@@STEP_LOG_LINE (a] json.output@  \"source_manifest\": {@@@",
     79       "@@@STEP_LOG_LINE (a] json.output@    \"directories\": {@@@",
     80       "@@@STEP_LOG_LINE (a] json.output@      \"skia\": {@@@",
     81       "@@@STEP_LOG_LINE (a] json.output@        \"git_checkout\": {@@@",
     82       "@@@STEP_LOG_LINE (a] json.output@          \"repo_url\": \"https://fake.org/skia.git\", @@@",
     83       "@@@STEP_LOG_LINE (a] json.output@          \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
     84       "@@@STEP_LOG_LINE (a] json.output@        }@@@",
     85       "@@@STEP_LOG_LINE (a] json.output@      }@@@",
     86       "@@@STEP_LOG_LINE (a] json.output@    }, @@@",
     87       "@@@STEP_LOG_LINE (a] json.output@    \"version\": 0@@@",
     88       "@@@STEP_LOG_LINE (a] json.output@  }, @@@",
     89       "@@@STEP_LOG_LINE (a] json.output@  \"step_text\": \"Some step text\"@@@",
     90       "@@@STEP_LOG_LINE (a] json.output@}@@@",
     91       "@@@STEP_LOG_END (a] json.output@@@",
     92       "@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
     93       "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
     94     ]
     95   },
     96   {
     97     "cmd": [
     98       "python",
     99       "-u",
    100       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    101       "--json-output",
    102       "/path/to/tmp/json",
    103       "ensure-directory",
    104       "--mode",
    105       "0777",
    106       "[START_DIR]/tmp"
    107     ],
    108     "infra_step": true,
    109     "name": "makedirs tmp_dir"
    110   },
    111   {
    112     "cmd": [
    113       "python",
    114       "-u",
    115       "[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
    116     ],
    117     "cwd": "[CUSTOM_/_B_WORK]/skia",
    118     "env": {
    119       "BUILDTYPE": "Release",
    120       "CHROME_HEADLESS": "1",
    121       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    122       "SKIA_OUT": "[START_DIR]/out"
    123     },
    124     "infra_step": true,
    125     "name": "fetch-gn"
    126   },
    127   {
    128     "cmd": [
    129       "[CUSTOM_/_B_WORK]/skia/bin/gn",
    130       "gen",
    131       "[START_DIR]/out/Release",
    132       "--args=cc=\"gcc-4.8\" cxx=\"g++-4.8\" is_debug=false"
    133     ],
    134     "cwd": "[CUSTOM_/_B_WORK]/skia",
    135     "env": {
    136       "BUILDTYPE": "Release",
    137       "CHROME_HEADLESS": "1",
    138       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    139       "SKIA_OUT": "[START_DIR]/out"
    140     },
    141     "name": "gn gen"
    142   },
    143   {
    144     "cmd": [
    145       "ninja",
    146       "-k",
    147       "0",
    148       "-C",
    149       "[START_DIR]/out/Release"
    150     ],
    151     "cwd": "[CUSTOM_/_B_WORK]/skia",
    152     "env": {
    153       "BUILDTYPE": "Release",
    154       "CHROME_HEADLESS": "1",
    155       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    156       "SKIA_OUT": "[START_DIR]/out"
    157     },
    158     "name": "ninja"
    159   },
    160   {
    161     "cmd": [
    162       "python",
    163       "-u",
    164       "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so']\n\ntry:\n  os.makedirs(dst)\nexcept OSError as e:\n  if e.errno != errno.EEXIST:\n    raise\n\nfor pattern in build_products_whitelist:\n  path = os.path.join(src, pattern)\n  for f in glob.glob(path):\n    dst_path = os.path.join(dst, os.path.relpath(f, src))\n    if not os.path.isdir(os.path.dirname(dst_path)):\n      os.makedirs(os.path.dirname(dst_path))\n    print 'Copying build product %s to %s' % (f, dst_path)\n    shutil.move(f, dst_path)\n",
    165       "[START_DIR]/out/Release",
    166       "[CUSTOM_/_B_WORK]/skia/infra/bots/ct"
    167     ],
    168     "infra_step": true,
    169     "name": "copy build products",
    170     "~followup_annotations": [
    171       "@@@STEP_LOG_LINE (a] python.inline@import errno@@@",
    172       "@@@STEP_LOG_LINE (a] python.inline@import glob@@@",
    173       "@@@STEP_LOG_LINE (a] python.inline@import os@@@",
    174       "@@@STEP_LOG_LINE (a] python.inline@import shutil@@@",
    175       "@@@STEP_LOG_LINE (a] python.inline@import sys@@@",
    176       "@@@STEP_LOG_LINE (a] python.inline@@@@",
    177       "@@@STEP_LOG_LINE (a] python.inline@src = sys.argv[1]@@@",
    178       "@@@STEP_LOG_LINE (a] python.inline@dst = sys.argv[2]@@@",
    179       "@@@STEP_LOG_LINE (a] python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so']@@@",
    180       "@@@STEP_LOG_LINE (a] python.inline@@@@",
    181       "@@@STEP_LOG_LINE (a] python.inline@try:@@@",
    182       "@@@STEP_LOG_LINE (a] python.inline@  os.makedirs(dst)@@@",
    183       "@@@STEP_LOG_LINE (a] python.inline@except OSError as e:@@@",
    184       "@@@STEP_LOG_LINE (a] python.inline@  if e.errno != errno.EEXIST:@@@",
    185       "@@@STEP_LOG_LINE (a] python.inline@    raise@@@",
    186       "@@@STEP_LOG_LINE (a] python.inline@@@@",
    187       "@@@STEP_LOG_LINE (a] python.inline@for pattern in build_products_whitelist:@@@",
    188       "@@@STEP_LOG_LINE (a] python.inline@  path = os.path.join(src, pattern)@@@",
    189       "@@@STEP_LOG_LINE (a] python.inline@  for f in glob.glob(path):@@@",
    190       "@@@STEP_LOG_LINE (a] python.inline@    dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
    191       "@@@STEP_LOG_LINE (a] python.inline@    if not os.path.isdir(os.path.dirname(dst_path)):@@@",
    192       "@@@STEP_LOG_LINE (a] python.inline@      os.makedirs(os.path.dirname(dst_path))@@@",
    193       "@@@STEP_LOG_LINE (a] python.inline@    print 'Copying build product %s to %s' % (f, dst_path)@@@",
    194       "@@@STEP_LOG_LINE (a] python.inline@    shutil.move(f, dst_path)@@@",
    195       "@@@STEP_LOG_END (a] python.inline@@@"
    196     ]
    197   },
    198   {
    199     "cmd": [
    200       "python",
    201       "-u",
    202       "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
    203       "--path",
    204       "[START_DIR]/swarming.client",
    205       "--url",
    206       "https://chromium.googlesource.com/external/swarming.client.git"
    207     ],
    208     "name": "git setup (swarming_client)"
    209   },
    210   {
    211     "cmd": [
    212       "git",
    213       "retry",
    214       "fetch",
    215       "origin",
    216       "master",
    217       "--progress"
    218     ],
    219     "cwd": "[START_DIR]/swarming.client",
    220     "env": {
    221       "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
    222     },
    223     "infra_step": true,
    224     "name": "git fetch (swarming_client)"
    225   },
    226   {
    227     "cmd": [
    228       "git",
    229       "checkout",
    230       "-f",
    231       "FETCH_HEAD"
    232     ],
    233     "cwd": "[START_DIR]/swarming.client",
    234     "infra_step": true,
    235     "name": "git checkout (swarming_client)"
    236   },
    237   {
    238     "cmd": [
    239       "git",
    240       "rev-parse",
    241       "HEAD"
    242     ],
    243     "cwd": "[START_DIR]/swarming.client",
    244     "infra_step": true,
    245     "name": "read revision",
    246     "stdout": "/path/to/tmp/",
    247     "~followup_annotations": [
    248       "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
    249     ]
    250   },
    251   {
    252     "cmd": [
    253       "git",
    254       "clean",
    255       "-f",
    256       "-d",
    257       "-x"
    258     ],
    259     "cwd": "[START_DIR]/swarming.client",
    260     "infra_step": true,
    261     "name": "git clean (swarming_client)"
    262   },
    263   {
    264     "cmd": [
    265       "git",
    266       "submodule",
    267       "sync"
    268     ],
    269     "cwd": "[START_DIR]/swarming.client",
    270     "infra_step": true,
    271     "name": "submodule sync (swarming_client)"
    272   },
    273   {
    274     "cmd": [
    275       "git",
    276       "submodule",
    277       "update",
    278       "--init",
    279       "--recursive"
    280     ],
    281     "cwd": "[START_DIR]/swarming.client",
    282     "infra_step": true,
    283     "name": "submodule update (swarming_client)"
    284   },
    285   {
    286     "cmd": [
    287       "python",
    288       "-u",
    289       "[START_DIR]/swarming.client/swarming.py",
    290       "--version"
    291     ],
    292     "name": "swarming.py --version",
    293     "stdout": "/path/to/tmp/",
    294     "~followup_annotations": [
    295       "@@@STEP_TEXT (a] 0.8.6@@@"
    296     ]
    297   },
    298   {
    299     "cmd": [
    300       "download_from_google_storage",
    301       "--no_resume",
    302       "--platform=linux*",
    303       "--no_auth",
    304       "--bucket",
    305       "chromium-luci",
    306       "-d",
    307       "[CUSTOM_/_B_WORK]/skia/infra/bots/tools/luci-go/linux64"
    308     ],
    309     "env": {
    310       "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
    311     },
    312     "name": "download luci-go linux"
    313   },
    314   {
    315     "cmd": [
    316       "download_from_google_storage",
    317       "--no_resume",
    318       "--platform=darwin",
    319       "--no_auth",
    320       "--bucket",
    321       "chromium-luci",
    322       "-d",
    323       "[CUSTOM_/_B_WORK]/skia/infra/bots/tools/luci-go/mac64"
    324     ],
    325     "env": {
    326       "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
    327     },
    328     "name": "download luci-go mac"
    329   },
    330   {
    331     "cmd": [
    332       "download_from_google_storage",
    333       "--no_resume",
    334       "--platform=win32",
    335       "--no_auth",
    336       "--bucket",
    337       "chromium-luci",
    338       "-d",
    339       "[CUSTOM_/_B_WORK]/skia/infra/bots/tools/luci-go/win64"
    340     ],
    341     "env": {
    342       "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
    343     },
    344     "name": "download luci-go win"
    345   },
    346   {
    347     "cmd": [
    348       "python",
    349       "-u",
    350       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    351       "--json-output",
    352       "/path/to/tmp/json",
    353       "rmtree",
    354       "[START_DIR]/luci-go"
    355     ],
    356     "infra_step": true,
    357     "name": "rmtree luci-go"
    358   },
    359   {
    360     "cmd": [
    361       "python",
    362       "-u",
    363       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    364       "--json-output",
    365       "/path/to/tmp/json",
    366       "copytree",
    367       "[CUSTOM_/_B_WORK]/skia/infra/bots/tools/luci-go",
    368       "[START_DIR]/luci-go"
    369     ],
    370     "infra_step": true,
    371     "name": "Copy Go binary",
    372     "~followup_annotations": [
    373       "@@@SET_BUILD_PROPERTY@Download SKPs by rank@\"https://pantheon.corp.google.com/storage/browser/cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/\"@@@",
    374       "@@@SET_BUILD_PROPERTY@Webpage rankings@\"https://storage.cloud.google.com/cluster-telemetry/csv/top-1m.csv\"@@@"
    375     ]
    376   },
    377   {
    378     "cmd": [
    379       "python",
    380       "-u",
    381       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    382       "--json-output",
    383       "/path/to/tmp/json",
    384       "rmtree",
    385       "[START_DIR]/swarming_temp_dir"
    386     ],
    387     "infra_step": true,
    388     "name": "rmtree swarming_temp_dir"
    389   },
    390   {
    391     "cmd": [
    392       "python",
    393       "-u",
    394       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    395       "--json-output",
    396       "/path/to/tmp/json",
    397       "rmtree",
    398       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave1"
    399     ],
    400     "infra_step": true,
    401     "name": "rmtree slave1"
    402   },
    403   {
    404     "cmd": [
    405       "python",
    406       "-u",
    407       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    408       "--json-output",
    409       "/path/to/tmp/json",
    410       "ensure-directory",
    411       "--mode",
    412       "0777",
    413       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave1"
    414     ],
    415     "infra_step": true,
    416     "name": "makedirs slave1"
    417   },
    418   {
    419     "cmd": [
    420       "gsutil",
    421       "-m",
    422       "cp",
    423       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/1/*.skp",
    424       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/2/*.skp",
    425       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/3/*.skp",
    426       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/4/*.skp",
    427       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/5/*.skp",
    428       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/6/*.skp",
    429       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/7/*.skp",
    430       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/8/*.skp",
    431       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/9/*.skp",
    432       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/10/*.skp",
    433       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave1"
    434     ],
    435     "name": "gsutil cp"
    436   },
    437   {
    438     "cmd": [
    439       "python",
    440       "-u",
    441       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    442       "--json-output",
    443       "/path/to/tmp/json",
    444       "ensure-directory",
    445       "--mode",
    446       "0777",
    447       "[START_DIR]/swarming_temp_dir"
    448     ],
    449     "infra_step": true,
    450     "name": "makedirs swarming tmp dir"
    451   },
    452   {
    453     "cmd": [
    454       "python",
    455       "-u",
    456       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    457       "--json-output",
    458       "/path/to/tmp/json",
    459       "copy",
    460       "{\n    \"args\": [\n        \"--isolate\", \n        \"[CUSTOM_/_B_WORK]/skia/infra/bots/ct/ct_skps.isolate\", \n        \"--isolated\", \n        \"[START_DIR]/swarming_temp_dir/skia-task-ct-nanobench-1.isolated\", \n        \"--config-variable\", \n        \"OS\", \n        \"linux\", \n        \"--extra-variable\", \n        \"NUM_SLAVES\", \n        \"5\", \n        \"--extra-variable\", \n        \"CONFIGURATION\", \n        \"Release\", \n        \"--extra-variable\", \n        \"SLAVE_NUM\", \n        \"1\", \n        \"--extra-variable\", \n        \"PAGE_TYPE\", \n        \"All\", \n        \"--extra-variable\", \n        \"BUILDER\", \n        \"Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs\", \n        \"--extra-variable\", \n        \"GIT_HASH\", \n        \"9046e2e693bb92a76e972b694580e5d17ad10748\", \n        \"--extra-variable\", \n        \"TOOL_NAME\", \n        \"nanobench\", \n        \"--extra-variable\", \n        \"CHROMIUM_BUILD\", \n        \"2b7e85eb251dc7-a3cf3659ed2c08\"\n    ], \n    \"dir\": \"[CUSTOM_/_B_WORK]/skia/infra/bots/ct\", \n    \"version\": 1\n}",
    461       "[START_DIR]/swarming_temp_dir/ct-nanobench-1.isolated.gen.json"
    462     ],
    463     "infra_step": true,
    464     "name": "Write ct-nanobench-1.isolated.gen.json"
    465   },
    466   {
    467     "cmd": [
    468       "python",
    469       "-u",
    470       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    471       "--json-output",
    472       "/path/to/tmp/json",
    473       "rmtree",
    474       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave2"
    475     ],
    476     "infra_step": true,
    477     "name": "rmtree slave2"
    478   },
    479   {
    480     "cmd": [
    481       "python",
    482       "-u",
    483       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    484       "--json-output",
    485       "/path/to/tmp/json",
    486       "ensure-directory",
    487       "--mode",
    488       "0777",
    489       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave2"
    490     ],
    491     "infra_step": true,
    492     "name": "makedirs slave2"
    493   },
    494   {
    495     "cmd": [
    496       "gsutil",
    497       "-m",
    498       "cp",
    499       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/11/*.skp",
    500       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/12/*.skp",
    501       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/13/*.skp",
    502       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/14/*.skp",
    503       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/15/*.skp",
    504       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/16/*.skp",
    505       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/17/*.skp",
    506       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/18/*.skp",
    507       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/19/*.skp",
    508       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/20/*.skp",
    509       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave2"
    510     ],
    511     "name": "gsutil cp (2)"
    512   },
    513   {
    514     "cmd": [
    515       "python",
    516       "-u",
    517       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    518       "--json-output",
    519       "/path/to/tmp/json",
    520       "ensure-directory",
    521       "--mode",
    522       "0777",
    523       "[START_DIR]/swarming_temp_dir"
    524     ],
    525     "infra_step": true,
    526     "name": "makedirs swarming tmp dir (2)"
    527   },
    528   {
    529     "cmd": [
    530       "python",
    531       "-u",
    532       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    533       "--json-output",
    534       "/path/to/tmp/json",
    535       "copy",
    536       "{\n    \"args\": [\n        \"--isolate\", \n        \"[CUSTOM_/_B_WORK]/skia/infra/bots/ct/ct_skps.isolate\", \n        \"--isolated\", \n        \"[START_DIR]/swarming_temp_dir/skia-task-ct-nanobench-2.isolated\", \n        \"--config-variable\", \n        \"OS\", \n        \"linux\", \n        \"--extra-variable\", \n        \"NUM_SLAVES\", \n        \"5\", \n        \"--extra-variable\", \n        \"CONFIGURATION\", \n        \"Release\", \n        \"--extra-variable\", \n        \"SLAVE_NUM\", \n        \"2\", \n        \"--extra-variable\", \n        \"PAGE_TYPE\", \n        \"All\", \n        \"--extra-variable\", \n        \"BUILDER\", \n        \"Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs\", \n        \"--extra-variable\", \n        \"GIT_HASH\", \n        \"9046e2e693bb92a76e972b694580e5d17ad10748\", \n        \"--extra-variable\", \n        \"TOOL_NAME\", \n        \"nanobench\", \n        \"--extra-variable\", \n        \"CHROMIUM_BUILD\", \n        \"2b7e85eb251dc7-a3cf3659ed2c08\"\n    ], \n    \"dir\": \"[CUSTOM_/_B_WORK]/skia/infra/bots/ct\", \n    \"version\": 1\n}",
    537       "[START_DIR]/swarming_temp_dir/ct-nanobench-2.isolated.gen.json"
    538     ],
    539     "infra_step": true,
    540     "name": "Write ct-nanobench-2.isolated.gen.json"
    541   },
    542   {
    543     "cmd": [
    544       "python",
    545       "-u",
    546       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    547       "--json-output",
    548       "/path/to/tmp/json",
    549       "rmtree",
    550       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave3"
    551     ],
    552     "infra_step": true,
    553     "name": "rmtree slave3"
    554   },
    555   {
    556     "cmd": [
    557       "python",
    558       "-u",
    559       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    560       "--json-output",
    561       "/path/to/tmp/json",
    562       "ensure-directory",
    563       "--mode",
    564       "0777",
    565       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave3"
    566     ],
    567     "infra_step": true,
    568     "name": "makedirs slave3"
    569   },
    570   {
    571     "cmd": [
    572       "gsutil",
    573       "-m",
    574       "cp",
    575       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/21/*.skp",
    576       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/22/*.skp",
    577       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/23/*.skp",
    578       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/24/*.skp",
    579       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/25/*.skp",
    580       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/26/*.skp",
    581       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/27/*.skp",
    582       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/28/*.skp",
    583       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/29/*.skp",
    584       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/30/*.skp",
    585       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave3"
    586     ],
    587     "name": "gsutil cp (3)"
    588   },
    589   {
    590     "cmd": [
    591       "python",
    592       "-u",
    593       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    594       "--json-output",
    595       "/path/to/tmp/json",
    596       "ensure-directory",
    597       "--mode",
    598       "0777",
    599       "[START_DIR]/swarming_temp_dir"
    600     ],
    601     "infra_step": true,
    602     "name": "makedirs swarming tmp dir (3)"
    603   },
    604   {
    605     "cmd": [
    606       "python",
    607       "-u",
    608       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    609       "--json-output",
    610       "/path/to/tmp/json",
    611       "copy",
    612       "{\n    \"args\": [\n        \"--isolate\", \n        \"[CUSTOM_/_B_WORK]/skia/infra/bots/ct/ct_skps.isolate\", \n        \"--isolated\", \n        \"[START_DIR]/swarming_temp_dir/skia-task-ct-nanobench-3.isolated\", \n        \"--config-variable\", \n        \"OS\", \n        \"linux\", \n        \"--extra-variable\", \n        \"NUM_SLAVES\", \n        \"5\", \n        \"--extra-variable\", \n        \"CONFIGURATION\", \n        \"Release\", \n        \"--extra-variable\", \n        \"SLAVE_NUM\", \n        \"3\", \n        \"--extra-variable\", \n        \"PAGE_TYPE\", \n        \"All\", \n        \"--extra-variable\", \n        \"BUILDER\", \n        \"Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs\", \n        \"--extra-variable\", \n        \"GIT_HASH\", \n        \"9046e2e693bb92a76e972b694580e5d17ad10748\", \n        \"--extra-variable\", \n        \"TOOL_NAME\", \n        \"nanobench\", \n        \"--extra-variable\", \n        \"CHROMIUM_BUILD\", \n        \"2b7e85eb251dc7-a3cf3659ed2c08\"\n    ], \n    \"dir\": \"[CUSTOM_/_B_WORK]/skia/infra/bots/ct\", \n    \"version\": 1\n}",
    613       "[START_DIR]/swarming_temp_dir/ct-nanobench-3.isolated.gen.json"
    614     ],
    615     "infra_step": true,
    616     "name": "Write ct-nanobench-3.isolated.gen.json"
    617   },
    618   {
    619     "cmd": [
    620       "python",
    621       "-u",
    622       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    623       "--json-output",
    624       "/path/to/tmp/json",
    625       "rmtree",
    626       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave4"
    627     ],
    628     "infra_step": true,
    629     "name": "rmtree slave4"
    630   },
    631   {
    632     "cmd": [
    633       "python",
    634       "-u",
    635       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    636       "--json-output",
    637       "/path/to/tmp/json",
    638       "ensure-directory",
    639       "--mode",
    640       "0777",
    641       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave4"
    642     ],
    643     "infra_step": true,
    644     "name": "makedirs slave4"
    645   },
    646   {
    647     "cmd": [
    648       "gsutil",
    649       "-m",
    650       "cp",
    651       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/31/*.skp",
    652       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/32/*.skp",
    653       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/33/*.skp",
    654       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/34/*.skp",
    655       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/35/*.skp",
    656       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/36/*.skp",
    657       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/37/*.skp",
    658       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/38/*.skp",
    659       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/39/*.skp",
    660       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/40/*.skp",
    661       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave4"
    662     ],
    663     "name": "gsutil cp (4)"
    664   },
    665   {
    666     "cmd": [
    667       "python",
    668       "-u",
    669       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    670       "--json-output",
    671       "/path/to/tmp/json",
    672       "ensure-directory",
    673       "--mode",
    674       "0777",
    675       "[START_DIR]/swarming_temp_dir"
    676     ],
    677     "infra_step": true,
    678     "name": "makedirs swarming tmp dir (4)"
    679   },
    680   {
    681     "cmd": [
    682       "python",
    683       "-u",
    684       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    685       "--json-output",
    686       "/path/to/tmp/json",
    687       "copy",
    688       "{\n    \"args\": [\n        \"--isolate\", \n        \"[CUSTOM_/_B_WORK]/skia/infra/bots/ct/ct_skps.isolate\", \n        \"--isolated\", \n        \"[START_DIR]/swarming_temp_dir/skia-task-ct-nanobench-4.isolated\", \n        \"--config-variable\", \n        \"OS\", \n        \"linux\", \n        \"--extra-variable\", \n        \"NUM_SLAVES\", \n        \"5\", \n        \"--extra-variable\", \n        \"CONFIGURATION\", \n        \"Release\", \n        \"--extra-variable\", \n        \"SLAVE_NUM\", \n        \"4\", \n        \"--extra-variable\", \n        \"PAGE_TYPE\", \n        \"All\", \n        \"--extra-variable\", \n        \"BUILDER\", \n        \"Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs\", \n        \"--extra-variable\", \n        \"GIT_HASH\", \n        \"9046e2e693bb92a76e972b694580e5d17ad10748\", \n        \"--extra-variable\", \n        \"TOOL_NAME\", \n        \"nanobench\", \n        \"--extra-variable\", \n        \"CHROMIUM_BUILD\", \n        \"2b7e85eb251dc7-a3cf3659ed2c08\"\n    ], \n    \"dir\": \"[CUSTOM_/_B_WORK]/skia/infra/bots/ct\", \n    \"version\": 1\n}",
    689       "[START_DIR]/swarming_temp_dir/ct-nanobench-4.isolated.gen.json"
    690     ],
    691     "infra_step": true,
    692     "name": "Write ct-nanobench-4.isolated.gen.json"
    693   },
    694   {
    695     "cmd": [
    696       "python",
    697       "-u",
    698       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    699       "--json-output",
    700       "/path/to/tmp/json",
    701       "rmtree",
    702       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave5"
    703     ],
    704     "infra_step": true,
    705     "name": "rmtree slave5"
    706   },
    707   {
    708     "cmd": [
    709       "python",
    710       "-u",
    711       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    712       "--json-output",
    713       "/path/to/tmp/json",
    714       "ensure-directory",
    715       "--mode",
    716       "0777",
    717       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave5"
    718     ],
    719     "infra_step": true,
    720     "name": "makedirs slave5"
    721   },
    722   {
    723     "cmd": [
    724       "gsutil",
    725       "-m",
    726       "cp",
    727       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/41/*.skp",
    728       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/42/*.skp",
    729       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/43/*.skp",
    730       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/44/*.skp",
    731       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/45/*.skp",
    732       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/46/*.skp",
    733       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/47/*.skp",
    734       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/48/*.skp",
    735       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/49/*.skp",
    736       "gs://cluster-telemetry/swarming/skps/All/2b7e85eb251dc7-a3cf3659ed2c08/50/*.skp",
    737       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/slave5"
    738     ],
    739     "name": "gsutil cp (5)"
    740   },
    741   {
    742     "cmd": [
    743       "python",
    744       "-u",
    745       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    746       "--json-output",
    747       "/path/to/tmp/json",
    748       "ensure-directory",
    749       "--mode",
    750       "0777",
    751       "[START_DIR]/swarming_temp_dir"
    752     ],
    753     "infra_step": true,
    754     "name": "makedirs swarming tmp dir (5)"
    755   },
    756   {
    757     "cmd": [
    758       "python",
    759       "-u",
    760       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    761       "--json-output",
    762       "/path/to/tmp/json",
    763       "copy",
    764       "{\n    \"args\": [\n        \"--isolate\", \n        \"[CUSTOM_/_B_WORK]/skia/infra/bots/ct/ct_skps.isolate\", \n        \"--isolated\", \n        \"[START_DIR]/swarming_temp_dir/skia-task-ct-nanobench-5.isolated\", \n        \"--config-variable\", \n        \"OS\", \n        \"linux\", \n        \"--extra-variable\", \n        \"NUM_SLAVES\", \n        \"5\", \n        \"--extra-variable\", \n        \"CONFIGURATION\", \n        \"Release\", \n        \"--extra-variable\", \n        \"SLAVE_NUM\", \n        \"5\", \n        \"--extra-variable\", \n        \"PAGE_TYPE\", \n        \"All\", \n        \"--extra-variable\", \n        \"BUILDER\", \n        \"Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs\", \n        \"--extra-variable\", \n        \"GIT_HASH\", \n        \"9046e2e693bb92a76e972b694580e5d17ad10748\", \n        \"--extra-variable\", \n        \"TOOL_NAME\", \n        \"nanobench\", \n        \"--extra-variable\", \n        \"CHROMIUM_BUILD\", \n        \"2b7e85eb251dc7-a3cf3659ed2c08\"\n    ], \n    \"dir\": \"[CUSTOM_/_B_WORK]/skia/infra/bots/ct\", \n    \"version\": 1\n}",
    765       "[START_DIR]/swarming_temp_dir/ct-nanobench-5.isolated.gen.json"
    766     ],
    767     "infra_step": true,
    768     "name": "Write ct-nanobench-5.isolated.gen.json"
    769   },
    770   {
    771     "cmd": [
    772       "python",
    773       "-u",
    774       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    775       "--json-output",
    776       "/path/to/tmp/json",
    777       "copy",
    778       "{\"chromium_build\": \"2b7e85eb251dc7-a3cf3659ed2c08\", \"num_slaves\": 5, \"page_type\": \"All\"}",
    779       "[CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/skps_version"
    780     ],
    781     "infra_step": true,
    782     "name": "Create [CUSTOM_/_B_WORK]/skps/2b7e85eb251dc7-a3cf3659ed2c08/All/5/skps_version"
    783   },
    784   {
    785     "cmd": [
    786       "python",
    787       "-u",
    788       "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
    789       "[START_DIR]/swarming.client",
    790       "batcharchive",
    791       "--dump-json",
    792       "/path/to/tmp/json",
    793       "--isolate-server",
    794       "https://isolateserver.appspot.com",
    795       "--verbose",
    796       "[START_DIR]/swarming_temp_dir/ct-nanobench-1.isolated.gen.json",
    797       "[START_DIR]/swarming_temp_dir/ct-nanobench-2.isolated.gen.json",
    798       "[START_DIR]/swarming_temp_dir/ct-nanobench-3.isolated.gen.json",
    799       "[START_DIR]/swarming_temp_dir/ct-nanobench-4.isolated.gen.json",
    800       "[START_DIR]/swarming_temp_dir/ct-nanobench-5.isolated.gen.json"
    801     ],
    802     "name": "isolate tests",
    803     "~followup_annotations": [
    804       "@@@STEP_LOG_LINE (a] json.output@{@@@",
    805       "@@@STEP_LOG_LINE (a] json.output@  \"ct-nanobench-1\": \"[dummy hash for ct-nanobench-1]\", @@@",
    806       "@@@STEP_LOG_LINE (a] json.output@  \"ct-nanobench-2\": \"[dummy hash for ct-nanobench-2]\", @@@",
    807       "@@@STEP_LOG_LINE (a] json.output@  \"ct-nanobench-3\": \"[dummy hash for ct-nanobench-3]\", @@@",
    808       "@@@STEP_LOG_LINE (a] json.output@  \"ct-nanobench-4\": \"[dummy hash for ct-nanobench-4]\", @@@",
    809       "@@@STEP_LOG_LINE (a] json.output@  \"ct-nanobench-5\": \"[dummy hash for ct-nanobench-5]\"@@@",
    810       "@@@STEP_LOG_LINE (a] json.output@}@@@",
    811       "@@@STEP_LOG_END (a] json.output@@@",
    812       "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"ct-nanobench-1\": \"[dummy hash for ct-nanobench-1]\", \"ct-nanobench-2\": \"[dummy hash for ct-nanobench-2]\", \"ct-nanobench-3\": \"[dummy hash for ct-nanobench-3]\", \"ct-nanobench-4\": \"[dummy hash for ct-nanobench-4]\", \"ct-nanobench-5\": \"[dummy hash for ct-nanobench-5]\"}@@@"
    813     ]
    814   },
    815   {
    816     "cmd": [
    817       "python",
    818       "-u",
    819       "[START_DIR]/swarming.client/swarming.py",
    820       "trigger",
    821       "--swarming",
    822       "https://chromium-swarm.appspot.com",
    823       "--isolate-server",
    824       "https://isolateserver.appspot.com",
    825       "--priority",
    826       "90",
    827       "--shards",
    828       "1",
    829       "--task-name",
    830       "ct-nanobench-1/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1",
    831       "--dump-json",
    832       "/path/to/tmp/json",
    833       "--expiration",
    834       "72000",
    835       "--io-timeout",
    836       "2400",
    837       "--hard-timeout",
    838       "14400",
    839       "--dimension",
    840       "cpu",
    841       "x86-64-E3-1230_v5",
    842       "--dimension",
    843       "gpu",
    844       "10de:1cb3-384.90",
    845       "--dimension",
    846       "os",
    847       "Ubuntu-14.04",
    848       "--dimension",
    849       "pool",
    850       "Chrome-GPU",
    851       "--tag",
    852       "allow_milo:1",
    853       "--tag",
    854       "buildername:Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs",
    855       "--tag",
    856       "data:[dummy hash for ct-nanobench-1]",
    857       "--tag",
    858       "name:ct-nanobench-1",
    859       "--tag",
    860       "os:Ubuntu-14.04",
    861       "--tag",
    862       "revision:abc123",
    863       "--tag",
    864       "stepname:ct-nanobench-1",
    865       "--isolated",
    866       "[dummy hash for ct-nanobench-1]"
    867     ],
    868     "infra_step": true,
    869     "name": "[trigger] ct-nanobench-1",
    870     "~followup_annotations": [
    871       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'@@@",
    872       "@@@STEP_LOG_LINE (a] json.output@{@@@",
    873       "@@@STEP_LOG_LINE (a] json.output@  \"base_task_name\": \"ct-nanobench-1/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\", @@@",
    874       "@@@STEP_LOG_LINE (a] json.output@  \"tasks\": {@@@",
    875       "@@@STEP_LOG_LINE (a] json.output@    \"ct-nanobench-1/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\": {@@@",
    876       "@@@STEP_LOG_LINE (a] json.output@      \"shard_index\": 0, @@@",
    877       "@@@STEP_LOG_LINE (a] json.output@      \"task_id\": \"10000\", @@@",
    878       "@@@STEP_LOG_LINE (a] json.output@      \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"@@@",
    879       "@@@STEP_LOG_LINE (a] json.output@    }@@@",
    880       "@@@STEP_LOG_LINE (a] json.output@  }@@@",
    881       "@@@STEP_LOG_LINE (a] json.output@}@@@",
    882       "@@@STEP_LOG_END (a] json.output@@@",
    883       "@@@STEP_LINK@shard #0@https://chromium-swarm.appspot.com/user/task/10000@@@"
    884     ]
    885   },
    886   {
    887     "cmd": [
    888       "python",
    889       "-u",
    890       "[START_DIR]/swarming.client/swarming.py",
    891       "trigger",
    892       "--swarming",
    893       "https://chromium-swarm.appspot.com",
    894       "--isolate-server",
    895       "https://isolateserver.appspot.com",
    896       "--priority",
    897       "90",
    898       "--shards",
    899       "1",
    900       "--task-name",
    901       "ct-nanobench-2/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1",
    902       "--dump-json",
    903       "/path/to/tmp/json",
    904       "--expiration",
    905       "72000",
    906       "--io-timeout",
    907       "2400",
    908       "--hard-timeout",
    909       "14400",
    910       "--dimension",
    911       "cpu",
    912       "x86-64-E3-1230_v5",
    913       "--dimension",
    914       "gpu",
    915       "10de:1cb3-384.90",
    916       "--dimension",
    917       "os",
    918       "Ubuntu-14.04",
    919       "--dimension",
    920       "pool",
    921       "Chrome-GPU",
    922       "--tag",
    923       "allow_milo:1",
    924       "--tag",
    925       "buildername:Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs",
    926       "--tag",
    927       "data:[dummy hash for ct-nanobench-2]",
    928       "--tag",
    929       "name:ct-nanobench-2",
    930       "--tag",
    931       "os:Ubuntu-14.04",
    932       "--tag",
    933       "revision:abc123",
    934       "--tag",
    935       "stepname:ct-nanobench-2",
    936       "--isolated",
    937       "[dummy hash for ct-nanobench-2]"
    938     ],
    939     "infra_step": true,
    940     "name": "[trigger] ct-nanobench-2",
    941     "~followup_annotations": [
    942       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'@@@",
    943       "@@@STEP_LOG_LINE (a] json.output@{@@@",
    944       "@@@STEP_LOG_LINE (a] json.output@  \"base_task_name\": \"ct-nanobench-2/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\", @@@",
    945       "@@@STEP_LOG_LINE (a] json.output@  \"tasks\": {@@@",
    946       "@@@STEP_LOG_LINE (a] json.output@    \"ct-nanobench-2/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\": {@@@",
    947       "@@@STEP_LOG_LINE (a] json.output@      \"shard_index\": 0, @@@",
    948       "@@@STEP_LOG_LINE (a] json.output@      \"task_id\": \"10000\", @@@",
    949       "@@@STEP_LOG_LINE (a] json.output@      \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"@@@",
    950       "@@@STEP_LOG_LINE (a] json.output@    }@@@",
    951       "@@@STEP_LOG_LINE (a] json.output@  }@@@",
    952       "@@@STEP_LOG_LINE (a] json.output@}@@@",
    953       "@@@STEP_LOG_END (a] json.output@@@",
    954       "@@@STEP_LINK@shard #0@https://chromium-swarm.appspot.com/user/task/10000@@@"
    955     ]
    956   },
    957   {
    958     "cmd": [
    959       "python",
    960       "-u",
    961       "[START_DIR]/swarming.client/swarming.py",
    962       "trigger",
    963       "--swarming",
    964       "https://chromium-swarm.appspot.com",
    965       "--isolate-server",
    966       "https://isolateserver.appspot.com",
    967       "--priority",
    968       "90",
    969       "--shards",
    970       "1",
    971       "--task-name",
    972       "ct-nanobench-3/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1",
    973       "--dump-json",
    974       "/path/to/tmp/json",
    975       "--expiration",
    976       "72000",
    977       "--io-timeout",
    978       "2400",
    979       "--hard-timeout",
    980       "14400",
    981       "--dimension",
    982       "cpu",
    983       "x86-64-E3-1230_v5",
    984       "--dimension",
    985       "gpu",
    986       "10de:1cb3-384.90",
    987       "--dimension",
    988       "os",
    989       "Ubuntu-14.04",
    990       "--dimension",
    991       "pool",
    992       "Chrome-GPU",
    993       "--tag",
    994       "allow_milo:1",
    995       "--tag",
    996       "buildername:Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs",
    997       "--tag",
    998       "data:[dummy hash for ct-nanobench-3]",
    999       "--tag",
   1000       "name:ct-nanobench-3",
   1001       "--tag",
   1002       "os:Ubuntu-14.04",
   1003       "--tag",
   1004       "revision:abc123",
   1005       "--tag",
   1006       "stepname:ct-nanobench-3",
   1007       "--isolated",
   1008       "[dummy hash for ct-nanobench-3]"
   1009     ],
   1010     "infra_step": true,
   1011     "name": "[trigger] ct-nanobench-3",
   1012     "~followup_annotations": [
   1013       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'@@@",
   1014       "@@@STEP_LOG_LINE (a] json.output@{@@@",
   1015       "@@@STEP_LOG_LINE (a] json.output@  \"base_task_name\": \"ct-nanobench-3/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\", @@@",
   1016       "@@@STEP_LOG_LINE (a] json.output@  \"tasks\": {@@@",
   1017       "@@@STEP_LOG_LINE (a] json.output@    \"ct-nanobench-3/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\": {@@@",
   1018       "@@@STEP_LOG_LINE (a] json.output@      \"shard_index\": 0, @@@",
   1019       "@@@STEP_LOG_LINE (a] json.output@      \"task_id\": \"10000\", @@@",
   1020       "@@@STEP_LOG_LINE (a] json.output@      \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"@@@",
   1021       "@@@STEP_LOG_LINE (a] json.output@    }@@@",
   1022       "@@@STEP_LOG_LINE (a] json.output@  }@@@",
   1023       "@@@STEP_LOG_LINE (a] json.output@}@@@",
   1024       "@@@STEP_LOG_END (a] json.output@@@",
   1025       "@@@STEP_LINK@shard #0@https://chromium-swarm.appspot.com/user/task/10000@@@"
   1026     ]
   1027   },
   1028   {
   1029     "cmd": [
   1030       "python",
   1031       "-u",
   1032       "[START_DIR]/swarming.client/swarming.py",
   1033       "trigger",
   1034       "--swarming",
   1035       "https://chromium-swarm.appspot.com",
   1036       "--isolate-server",
   1037       "https://isolateserver.appspot.com",
   1038       "--priority",
   1039       "90",
   1040       "--shards",
   1041       "1",
   1042       "--task-name",
   1043       "ct-nanobench-4/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1",
   1044       "--dump-json",
   1045       "/path/to/tmp/json",
   1046       "--expiration",
   1047       "72000",
   1048       "--io-timeout",
   1049       "2400",
   1050       "--hard-timeout",
   1051       "14400",
   1052       "--dimension",
   1053       "cpu",
   1054       "x86-64-E3-1230_v5",
   1055       "--dimension",
   1056       "gpu",
   1057       "10de:1cb3-384.90",
   1058       "--dimension",
   1059       "os",
   1060       "Ubuntu-14.04",
   1061       "--dimension",
   1062       "pool",
   1063       "Chrome-GPU",
   1064       "--tag",
   1065       "allow_milo:1",
   1066       "--tag",
   1067       "buildername:Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs",
   1068       "--tag",
   1069       "data:[dummy hash for ct-nanobench-4]",
   1070       "--tag",
   1071       "name:ct-nanobench-4",
   1072       "--tag",
   1073       "os:Ubuntu-14.04",
   1074       "--tag",
   1075       "revision:abc123",
   1076       "--tag",
   1077       "stepname:ct-nanobench-4",
   1078       "--isolated",
   1079       "[dummy hash for ct-nanobench-4]"
   1080     ],
   1081     "infra_step": true,
   1082     "name": "[trigger] ct-nanobench-4",
   1083     "~followup_annotations": [
   1084       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'@@@",
   1085       "@@@STEP_LOG_LINE (a] json.output@{@@@",
   1086       "@@@STEP_LOG_LINE (a] json.output@  \"base_task_name\": \"ct-nanobench-4/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\", @@@",
   1087       "@@@STEP_LOG_LINE (a] json.output@  \"tasks\": {@@@",
   1088       "@@@STEP_LOG_LINE (a] json.output@    \"ct-nanobench-4/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\": {@@@",
   1089       "@@@STEP_LOG_LINE (a] json.output@      \"shard_index\": 0, @@@",
   1090       "@@@STEP_LOG_LINE (a] json.output@      \"task_id\": \"10000\", @@@",
   1091       "@@@STEP_LOG_LINE (a] json.output@      \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"@@@",
   1092       "@@@STEP_LOG_LINE (a] json.output@    }@@@",
   1093       "@@@STEP_LOG_LINE (a] json.output@  }@@@",
   1094       "@@@STEP_LOG_LINE (a] json.output@}@@@",
   1095       "@@@STEP_LOG_END (a] json.output@@@",
   1096       "@@@STEP_LINK@shard #0@https://chromium-swarm.appspot.com/user/task/10000@@@"
   1097     ]
   1098   },
   1099   {
   1100     "cmd": [
   1101       "python",
   1102       "-u",
   1103       "[START_DIR]/swarming.client/swarming.py",
   1104       "trigger",
   1105       "--swarming",
   1106       "https://chromium-swarm.appspot.com",
   1107       "--isolate-server",
   1108       "https://isolateserver.appspot.com",
   1109       "--priority",
   1110       "90",
   1111       "--shards",
   1112       "1",
   1113       "--task-name",
   1114       "ct-nanobench-5/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1",
   1115       "--dump-json",
   1116       "/path/to/tmp/json",
   1117       "--expiration",
   1118       "72000",
   1119       "--io-timeout",
   1120       "2400",
   1121       "--hard-timeout",
   1122       "14400",
   1123       "--dimension",
   1124       "cpu",
   1125       "x86-64-E3-1230_v5",
   1126       "--dimension",
   1127       "gpu",
   1128       "10de:1cb3-384.90",
   1129       "--dimension",
   1130       "os",
   1131       "Ubuntu-14.04",
   1132       "--dimension",
   1133       "pool",
   1134       "Chrome-GPU",
   1135       "--tag",
   1136       "allow_milo:1",
   1137       "--tag",
   1138       "buildername:Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs",
   1139       "--tag",
   1140       "data:[dummy hash for ct-nanobench-5]",
   1141       "--tag",
   1142       "name:ct-nanobench-5",
   1143       "--tag",
   1144       "os:Ubuntu-14.04",
   1145       "--tag",
   1146       "revision:abc123",
   1147       "--tag",
   1148       "stepname:ct-nanobench-5",
   1149       "--isolated",
   1150       "[dummy hash for ct-nanobench-5]"
   1151     ],
   1152     "infra_step": true,
   1153     "name": "[trigger] ct-nanobench-5",
   1154     "~followup_annotations": [
   1155       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'@@@",
   1156       "@@@STEP_LOG_LINE (a] json.output@{@@@",
   1157       "@@@STEP_LOG_LINE (a] json.output@  \"base_task_name\": \"ct-nanobench-5/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\", @@@",
   1158       "@@@STEP_LOG_LINE (a] json.output@  \"tasks\": {@@@",
   1159       "@@@STEP_LOG_LINE (a] json.output@    \"ct-nanobench-5/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\": {@@@",
   1160       "@@@STEP_LOG_LINE (a] json.output@      \"shard_index\": 0, @@@",
   1161       "@@@STEP_LOG_LINE (a] json.output@      \"task_id\": \"10000\", @@@",
   1162       "@@@STEP_LOG_LINE (a] json.output@      \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"@@@",
   1163       "@@@STEP_LOG_LINE (a] json.output@    }@@@",
   1164       "@@@STEP_LOG_LINE (a] json.output@  }@@@",
   1165       "@@@STEP_LOG_LINE (a] json.output@}@@@",
   1166       "@@@STEP_LOG_END (a] json.output@@@",
   1167       "@@@STEP_LINK@shard #0@https://chromium-swarm.appspot.com/user/task/10000@@@",
   1168       "@@@STEP_LINK@view steps on Milo@https://luci-milo.appspot.com/swarming/task/10000@@@"
   1169     ]
   1170   },
   1171   {
   1172     "cmd": [
   1173       "python",
   1174       "-u",
   1175       "RECIPE_MODULE[skia::swarming]/resources/collect_task.py",
   1176       "-o",
   1177       "/path/to/tmp/json",
   1178       "--task-output-dir",
   1179       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-1",
   1180       "--merge-script",
   1181       "RECIPE_MODULE[skia::swarming]/resources/noop_merge.py",
   1182       "--merge-additional-args",
   1183       "[]",
   1184       "--",
   1185       "python",
   1186       "-u",
   1187       "[START_DIR]/swarming.client/swarming.py",
   1188       "collect",
   1189       "--swarming",
   1190       "https://chromium-swarm.appspot.com",
   1191       "--decorate",
   1192       "--print-status-updates",
   1193       "--json",
   1194       "{\"base_task_name\": \"ct-nanobench-1/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\", \"tasks\": {\"ct-nanobench-1/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\": {\"shard_index\": 0, \"task_id\": \"10000\", \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"}}}",
   1195       "--task-summary-json",
   1196       "/path/to/tmp/json"
   1197     ],
   1198     "name": "ct-nanobench-1",
   1199     "~followup_annotations": [
   1200       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>swarming pending 71s@@@",
   1201       "@@@STEP_LOG_LINE (a] json.output@{}@@@",
   1202       "@@@STEP_LOG_END (a] json.output@@@",
   1203       "@@@STEP_LOG_LINE (a] swarming.summary@{@@@",
   1204       "@@@STEP_LOG_LINE (a] swarming.summary@  \"shards\": [@@@",
   1205       "@@@STEP_LOG_LINE (a] swarming.summary@    {@@@",
   1206       "@@@STEP_LOG_LINE (a] swarming.summary@      \"abandoned_ts\": null, @@@",
   1207       "@@@STEP_LOG_LINE (a] swarming.summary@      \"bot_id\": \"vm30\", @@@",
   1208       "@@@STEP_LOG_LINE (a] swarming.summary@      \"completed_ts\": \"2014-09-25T01:42:00.123\", @@@",
   1209       "@@@STEP_LOG_LINE (a] swarming.summary@      \"created_ts\": \"2014-09-25T01:41:00.123\", @@@",
   1210       "@@@STEP_LOG_LINE (a] swarming.summary@      \"durations\": [@@@",
   1211       "@@@STEP_LOG_LINE (a] swarming.summary@        5.7, @@@",
   1212       "@@@STEP_LOG_LINE (a] swarming.summary@        31.5@@@",
   1213       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1214       "@@@STEP_LOG_LINE (a] swarming.summary@      \"exit_codes\": [@@@",
   1215       "@@@STEP_LOG_LINE (a] swarming.summary@        0, @@@",
   1216       "@@@STEP_LOG_LINE (a] swarming.summary@        0@@@",
   1217       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1218       "@@@STEP_LOG_LINE (a] swarming.summary@      \"failure\": false, @@@",
   1219       "@@@STEP_LOG_LINE (a] swarming.summary@      \"id\": \"148aa78d7aa0000\", @@@",
   1220       "@@@STEP_LOG_LINE (a] swarming.summary@      \"internal_failure\": false, @@@",
   1221       "@@@STEP_LOG_LINE (a] swarming.summary@      \"isolated_out\": {@@@",
   1222       "@@@STEP_LOG_LINE (a] swarming.summary@        \"isolated\": \"abc123\", @@@",
   1223       "@@@STEP_LOG_LINE (a] swarming.summary@        \"isolatedserver\": \"https://isolateserver.appspot.com\", @@@",
   1224       "@@@STEP_LOG_LINE (a] swarming.summary@        \"namespace\": \"default-gzip\", @@@",
   1225       "@@@STEP_LOG_LINE (a] swarming.summary@        \"view_url\": \"blah\"@@@",
   1226       "@@@STEP_LOG_LINE (a] swarming.summary@      }, @@@",
   1227       "@@@STEP_LOG_LINE (a] swarming.summary@      \"modified_ts\": \"2014-09-25 01:42:00\", @@@",
   1228       "@@@STEP_LOG_LINE (a] swarming.summary@      \"name\": \"heartbeat-canary-2014-09-25_01:41:55-os=Windows\", @@@",
   1229       "@@@STEP_LOG_LINE (a] swarming.summary@      \"outputs\": [@@@",
   1230       "@@@STEP_LOG_LINE (a] swarming.summary@        \"Heart beat succeeded on win32.\\n\", @@@",
   1231       "@@@STEP_LOG_LINE (a] swarming.summary@        \"Foo\"@@@",
   1232       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1233       "@@@STEP_LOG_LINE (a] swarming.summary@      \"outputs_ref\": {@@@",
   1234       "@@@STEP_LOG_LINE (a] swarming.summary@        \"view_url\": \"blah\"@@@",
   1235       "@@@STEP_LOG_LINE (a] swarming.summary@      }, @@@",
   1236       "@@@STEP_LOG_LINE (a] swarming.summary@      \"started_ts\": \"2014-09-25T01:42:11.123\", @@@",
   1237       "@@@STEP_LOG_LINE (a] swarming.summary@      \"state\": 112, @@@",
   1238       "@@@STEP_LOG_LINE (a] swarming.summary@      \"try_number\": 1, @@@",
   1239       "@@@STEP_LOG_LINE (a] swarming.summary@      \"user\": \"unknown\"@@@",
   1240       "@@@STEP_LOG_LINE (a] swarming.summary@    }@@@",
   1241       "@@@STEP_LOG_LINE (a] swarming.summary@  ]@@@",
   1242       "@@@STEP_LOG_LINE (a] swarming.summary@}@@@",
   1243       "@@@STEP_LOG_END (a] swarming.summary@@@",
   1244       "@@@STEP_LINK@shard #0 isolated out@blah@@@",
   1245       "@@@STEP_LINK@view steps on Milo@https://luci-milo.appspot.com/swarming/task/148aa78d7aa0000@@@"
   1246     ]
   1247   },
   1248   {
   1249     "cmd": [
   1250       "python",
   1251       "-u",
   1252       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
   1253       "--json-output",
   1254       "/path/to/tmp/json",
   1255       "listdir",
   1256       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-1/0"
   1257     ],
   1258     "infra_step": true,
   1259     "name": "listdir output dir",
   1260     "stdout": "/path/to/tmp/",
   1261     "~followup_annotations": [
   1262       "@@@STEP_LOG_LINE@listdir@[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-1/0/file 1@@@",
   1263       "@@@STEP_LOG_LINE@listdir@[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-1/0/file 2@@@",
   1264       "@@@STEP_LOG_END@listdir@@@"
   1265     ]
   1266   },
   1267   {
   1268     "cmd": [
   1269       "gsutil",
   1270       "cp",
   1271       "-R",
   1272       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-1/0/file 1",
   1273       "gs://skia-perf/ct/All/2012/05/14/12/"
   1274     ],
   1275     "env": {
   1276       "AWS_CREDENTIAL_FILE": null,
   1277       "BOTO_CONFIG": null
   1278     },
   1279     "infra_step": true,
   1280     "name": "upload json output"
   1281   },
   1282   {
   1283     "cmd": [
   1284       "gsutil",
   1285       "cp",
   1286       "-R",
   1287       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-1/0/file 2",
   1288       "gs://skia-perf/ct/All/2012/05/14/12/"
   1289     ],
   1290     "env": {
   1291       "AWS_CREDENTIAL_FILE": null,
   1292       "BOTO_CONFIG": null
   1293     },
   1294     "infra_step": true,
   1295     "name": "upload json output (2)"
   1296   },
   1297   {
   1298     "cmd": [
   1299       "python",
   1300       "-u",
   1301       "RECIPE_MODULE[skia::swarming]/resources/collect_task.py",
   1302       "-o",
   1303       "/path/to/tmp/json",
   1304       "--task-output-dir",
   1305       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-2",
   1306       "--merge-script",
   1307       "RECIPE_MODULE[skia::swarming]/resources/noop_merge.py",
   1308       "--merge-additional-args",
   1309       "[]",
   1310       "--",
   1311       "python",
   1312       "-u",
   1313       "[START_DIR]/swarming.client/swarming.py",
   1314       "collect",
   1315       "--swarming",
   1316       "https://chromium-swarm.appspot.com",
   1317       "--decorate",
   1318       "--print-status-updates",
   1319       "--json",
   1320       "{\"base_task_name\": \"ct-nanobench-2/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\", \"tasks\": {\"ct-nanobench-2/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\": {\"shard_index\": 0, \"task_id\": \"10000\", \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"}}}",
   1321       "--task-summary-json",
   1322       "/path/to/tmp/json"
   1323     ],
   1324     "name": "ct-nanobench-2",
   1325     "~followup_annotations": [
   1326       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>swarming pending 71s@@@",
   1327       "@@@STEP_LOG_LINE (a] json.output@{}@@@",
   1328       "@@@STEP_LOG_END (a] json.output@@@",
   1329       "@@@STEP_LOG_LINE (a] swarming.summary@{@@@",
   1330       "@@@STEP_LOG_LINE (a] swarming.summary@  \"shards\": [@@@",
   1331       "@@@STEP_LOG_LINE (a] swarming.summary@    {@@@",
   1332       "@@@STEP_LOG_LINE (a] swarming.summary@      \"abandoned_ts\": null, @@@",
   1333       "@@@STEP_LOG_LINE (a] swarming.summary@      \"bot_id\": \"vm30\", @@@",
   1334       "@@@STEP_LOG_LINE (a] swarming.summary@      \"completed_ts\": \"2014-09-25T01:42:00.123\", @@@",
   1335       "@@@STEP_LOG_LINE (a] swarming.summary@      \"created_ts\": \"2014-09-25T01:41:00.123\", @@@",
   1336       "@@@STEP_LOG_LINE (a] swarming.summary@      \"durations\": [@@@",
   1337       "@@@STEP_LOG_LINE (a] swarming.summary@        5.7, @@@",
   1338       "@@@STEP_LOG_LINE (a] swarming.summary@        31.5@@@",
   1339       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1340       "@@@STEP_LOG_LINE (a] swarming.summary@      \"exit_codes\": [@@@",
   1341       "@@@STEP_LOG_LINE (a] swarming.summary@        0, @@@",
   1342       "@@@STEP_LOG_LINE (a] swarming.summary@        0@@@",
   1343       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1344       "@@@STEP_LOG_LINE (a] swarming.summary@      \"failure\": false, @@@",
   1345       "@@@STEP_LOG_LINE (a] swarming.summary@      \"id\": \"148aa78d7aa0000\", @@@",
   1346       "@@@STEP_LOG_LINE (a] swarming.summary@      \"internal_failure\": false, @@@",
   1347       "@@@STEP_LOG_LINE (a] swarming.summary@      \"isolated_out\": {@@@",
   1348       "@@@STEP_LOG_LINE (a] swarming.summary@        \"isolated\": \"abc123\", @@@",
   1349       "@@@STEP_LOG_LINE (a] swarming.summary@        \"isolatedserver\": \"https://isolateserver.appspot.com\", @@@",
   1350       "@@@STEP_LOG_LINE (a] swarming.summary@        \"namespace\": \"default-gzip\", @@@",
   1351       "@@@STEP_LOG_LINE (a] swarming.summary@        \"view_url\": \"blah\"@@@",
   1352       "@@@STEP_LOG_LINE (a] swarming.summary@      }, @@@",
   1353       "@@@STEP_LOG_LINE (a] swarming.summary@      \"modified_ts\": \"2014-09-25 01:42:00\", @@@",
   1354       "@@@STEP_LOG_LINE (a] swarming.summary@      \"name\": \"heartbeat-canary-2014-09-25_01:41:55-os=Windows\", @@@",
   1355       "@@@STEP_LOG_LINE (a] swarming.summary@      \"outputs\": [@@@",
   1356       "@@@STEP_LOG_LINE (a] swarming.summary@        \"Heart beat succeeded on win32.\\n\", @@@",
   1357       "@@@STEP_LOG_LINE (a] swarming.summary@        \"Foo\"@@@",
   1358       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1359       "@@@STEP_LOG_LINE (a] swarming.summary@      \"outputs_ref\": {@@@",
   1360       "@@@STEP_LOG_LINE (a] swarming.summary@        \"view_url\": \"blah\"@@@",
   1361       "@@@STEP_LOG_LINE (a] swarming.summary@      }, @@@",
   1362       "@@@STEP_LOG_LINE (a] swarming.summary@      \"started_ts\": \"2014-09-25T01:42:11.123\", @@@",
   1363       "@@@STEP_LOG_LINE (a] swarming.summary@      \"state\": 112, @@@",
   1364       "@@@STEP_LOG_LINE (a] swarming.summary@      \"try_number\": 1, @@@",
   1365       "@@@STEP_LOG_LINE (a] swarming.summary@      \"user\": \"unknown\"@@@",
   1366       "@@@STEP_LOG_LINE (a] swarming.summary@    }@@@",
   1367       "@@@STEP_LOG_LINE (a] swarming.summary@  ]@@@",
   1368       "@@@STEP_LOG_LINE (a] swarming.summary@}@@@",
   1369       "@@@STEP_LOG_END (a] swarming.summary@@@",
   1370       "@@@STEP_LINK@shard #0 isolated out@blah@@@",
   1371       "@@@STEP_LINK@view steps on Milo@https://luci-milo.appspot.com/swarming/task/148aa78d7aa0000@@@"
   1372     ]
   1373   },
   1374   {
   1375     "cmd": [
   1376       "python",
   1377       "-u",
   1378       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
   1379       "--json-output",
   1380       "/path/to/tmp/json",
   1381       "listdir",
   1382       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-2/0"
   1383     ],
   1384     "infra_step": true,
   1385     "name": "listdir output dir (2)",
   1386     "stdout": "/path/to/tmp/",
   1387     "~followup_annotations": [
   1388       "@@@STEP_LOG_LINE@listdir@[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-2/0/file 1@@@",
   1389       "@@@STEP_LOG_LINE@listdir@[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-2/0/file 2@@@",
   1390       "@@@STEP_LOG_END@listdir@@@"
   1391     ]
   1392   },
   1393   {
   1394     "cmd": [
   1395       "gsutil",
   1396       "cp",
   1397       "-R",
   1398       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-2/0/file 1",
   1399       "gs://skia-perf/ct/All/2012/05/14/12/"
   1400     ],
   1401     "env": {
   1402       "AWS_CREDENTIAL_FILE": null,
   1403       "BOTO_CONFIG": null
   1404     },
   1405     "infra_step": true,
   1406     "name": "upload json output (3)"
   1407   },
   1408   {
   1409     "cmd": [
   1410       "gsutil",
   1411       "cp",
   1412       "-R",
   1413       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-2/0/file 2",
   1414       "gs://skia-perf/ct/All/2012/05/14/12/"
   1415     ],
   1416     "env": {
   1417       "AWS_CREDENTIAL_FILE": null,
   1418       "BOTO_CONFIG": null
   1419     },
   1420     "infra_step": true,
   1421     "name": "upload json output (4)"
   1422   },
   1423   {
   1424     "cmd": [
   1425       "python",
   1426       "-u",
   1427       "RECIPE_MODULE[skia::swarming]/resources/collect_task.py",
   1428       "-o",
   1429       "/path/to/tmp/json",
   1430       "--task-output-dir",
   1431       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-3",
   1432       "--merge-script",
   1433       "RECIPE_MODULE[skia::swarming]/resources/noop_merge.py",
   1434       "--merge-additional-args",
   1435       "[]",
   1436       "--",
   1437       "python",
   1438       "-u",
   1439       "[START_DIR]/swarming.client/swarming.py",
   1440       "collect",
   1441       "--swarming",
   1442       "https://chromium-swarm.appspot.com",
   1443       "--decorate",
   1444       "--print-status-updates",
   1445       "--json",
   1446       "{\"base_task_name\": \"ct-nanobench-3/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\", \"tasks\": {\"ct-nanobench-3/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\": {\"shard_index\": 0, \"task_id\": \"10000\", \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"}}}",
   1447       "--task-summary-json",
   1448       "/path/to/tmp/json"
   1449     ],
   1450     "name": "ct-nanobench-3",
   1451     "~followup_annotations": [
   1452       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>swarming pending 71s@@@",
   1453       "@@@STEP_LOG_LINE (a] json.output@{}@@@",
   1454       "@@@STEP_LOG_END (a] json.output@@@",
   1455       "@@@STEP_LOG_LINE (a] swarming.summary@{@@@",
   1456       "@@@STEP_LOG_LINE (a] swarming.summary@  \"shards\": [@@@",
   1457       "@@@STEP_LOG_LINE (a] swarming.summary@    {@@@",
   1458       "@@@STEP_LOG_LINE (a] swarming.summary@      \"abandoned_ts\": null, @@@",
   1459       "@@@STEP_LOG_LINE (a] swarming.summary@      \"bot_id\": \"vm30\", @@@",
   1460       "@@@STEP_LOG_LINE (a] swarming.summary@      \"completed_ts\": \"2014-09-25T01:42:00.123\", @@@",
   1461       "@@@STEP_LOG_LINE (a] swarming.summary@      \"created_ts\": \"2014-09-25T01:41:00.123\", @@@",
   1462       "@@@STEP_LOG_LINE (a] swarming.summary@      \"durations\": [@@@",
   1463       "@@@STEP_LOG_LINE (a] swarming.summary@        5.7, @@@",
   1464       "@@@STEP_LOG_LINE (a] swarming.summary@        31.5@@@",
   1465       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1466       "@@@STEP_LOG_LINE (a] swarming.summary@      \"exit_codes\": [@@@",
   1467       "@@@STEP_LOG_LINE (a] swarming.summary@        0, @@@",
   1468       "@@@STEP_LOG_LINE (a] swarming.summary@        0@@@",
   1469       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1470       "@@@STEP_LOG_LINE (a] swarming.summary@      \"failure\": false, @@@",
   1471       "@@@STEP_LOG_LINE (a] swarming.summary@      \"id\": \"148aa78d7aa0000\", @@@",
   1472       "@@@STEP_LOG_LINE (a] swarming.summary@      \"internal_failure\": false, @@@",
   1473       "@@@STEP_LOG_LINE (a] swarming.summary@      \"isolated_out\": {@@@",
   1474       "@@@STEP_LOG_LINE (a] swarming.summary@        \"isolated\": \"abc123\", @@@",
   1475       "@@@STEP_LOG_LINE (a] swarming.summary@        \"isolatedserver\": \"https://isolateserver.appspot.com\", @@@",
   1476       "@@@STEP_LOG_LINE (a] swarming.summary@        \"namespace\": \"default-gzip\", @@@",
   1477       "@@@STEP_LOG_LINE (a] swarming.summary@        \"view_url\": \"blah\"@@@",
   1478       "@@@STEP_LOG_LINE (a] swarming.summary@      }, @@@",
   1479       "@@@STEP_LOG_LINE (a] swarming.summary@      \"modified_ts\": \"2014-09-25 01:42:00\", @@@",
   1480       "@@@STEP_LOG_LINE (a] swarming.summary@      \"name\": \"heartbeat-canary-2014-09-25_01:41:55-os=Windows\", @@@",
   1481       "@@@STEP_LOG_LINE (a] swarming.summary@      \"outputs\": [@@@",
   1482       "@@@STEP_LOG_LINE (a] swarming.summary@        \"Heart beat succeeded on win32.\\n\", @@@",
   1483       "@@@STEP_LOG_LINE (a] swarming.summary@        \"Foo\"@@@",
   1484       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1485       "@@@STEP_LOG_LINE (a] swarming.summary@      \"outputs_ref\": {@@@",
   1486       "@@@STEP_LOG_LINE (a] swarming.summary@        \"view_url\": \"blah\"@@@",
   1487       "@@@STEP_LOG_LINE (a] swarming.summary@      }, @@@",
   1488       "@@@STEP_LOG_LINE (a] swarming.summary@      \"started_ts\": \"2014-09-25T01:42:11.123\", @@@",
   1489       "@@@STEP_LOG_LINE (a] swarming.summary@      \"state\": 112, @@@",
   1490       "@@@STEP_LOG_LINE (a] swarming.summary@      \"try_number\": 1, @@@",
   1491       "@@@STEP_LOG_LINE (a] swarming.summary@      \"user\": \"unknown\"@@@",
   1492       "@@@STEP_LOG_LINE (a] swarming.summary@    }@@@",
   1493       "@@@STEP_LOG_LINE (a] swarming.summary@  ]@@@",
   1494       "@@@STEP_LOG_LINE (a] swarming.summary@}@@@",
   1495       "@@@STEP_LOG_END (a] swarming.summary@@@",
   1496       "@@@STEP_LINK@shard #0 isolated out@blah@@@",
   1497       "@@@STEP_LINK@view steps on Milo@https://luci-milo.appspot.com/swarming/task/148aa78d7aa0000@@@"
   1498     ]
   1499   },
   1500   {
   1501     "cmd": [
   1502       "python",
   1503       "-u",
   1504       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
   1505       "--json-output",
   1506       "/path/to/tmp/json",
   1507       "listdir",
   1508       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-3/0"
   1509     ],
   1510     "infra_step": true,
   1511     "name": "listdir output dir (3)",
   1512     "stdout": "/path/to/tmp/",
   1513     "~followup_annotations": [
   1514       "@@@STEP_LOG_LINE@listdir@[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-3/0/file 1@@@",
   1515       "@@@STEP_LOG_LINE@listdir@[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-3/0/file 2@@@",
   1516       "@@@STEP_LOG_END@listdir@@@"
   1517     ]
   1518   },
   1519   {
   1520     "cmd": [
   1521       "gsutil",
   1522       "cp",
   1523       "-R",
   1524       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-3/0/file 1",
   1525       "gs://skia-perf/ct/All/2012/05/14/12/"
   1526     ],
   1527     "env": {
   1528       "AWS_CREDENTIAL_FILE": null,
   1529       "BOTO_CONFIG": null
   1530     },
   1531     "infra_step": true,
   1532     "name": "upload json output (5)"
   1533   },
   1534   {
   1535     "cmd": [
   1536       "gsutil",
   1537       "cp",
   1538       "-R",
   1539       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-3/0/file 2",
   1540       "gs://skia-perf/ct/All/2012/05/14/12/"
   1541     ],
   1542     "env": {
   1543       "AWS_CREDENTIAL_FILE": null,
   1544       "BOTO_CONFIG": null
   1545     },
   1546     "infra_step": true,
   1547     "name": "upload json output (6)"
   1548   },
   1549   {
   1550     "cmd": [
   1551       "python",
   1552       "-u",
   1553       "RECIPE_MODULE[skia::swarming]/resources/collect_task.py",
   1554       "-o",
   1555       "/path/to/tmp/json",
   1556       "--task-output-dir",
   1557       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-4",
   1558       "--merge-script",
   1559       "RECIPE_MODULE[skia::swarming]/resources/noop_merge.py",
   1560       "--merge-additional-args",
   1561       "[]",
   1562       "--",
   1563       "python",
   1564       "-u",
   1565       "[START_DIR]/swarming.client/swarming.py",
   1566       "collect",
   1567       "--swarming",
   1568       "https://chromium-swarm.appspot.com",
   1569       "--decorate",
   1570       "--print-status-updates",
   1571       "--json",
   1572       "{\"base_task_name\": \"ct-nanobench-4/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\", \"tasks\": {\"ct-nanobench-4/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\": {\"shard_index\": 0, \"task_id\": \"10000\", \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"}}}",
   1573       "--task-summary-json",
   1574       "/path/to/tmp/json"
   1575     ],
   1576     "name": "ct-nanobench-4",
   1577     "~followup_annotations": [
   1578       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>swarming pending 71s@@@",
   1579       "@@@STEP_LOG_LINE (a] json.output@{}@@@",
   1580       "@@@STEP_LOG_END (a] json.output@@@",
   1581       "@@@STEP_LOG_LINE (a] swarming.summary@{@@@",
   1582       "@@@STEP_LOG_LINE (a] swarming.summary@  \"shards\": [@@@",
   1583       "@@@STEP_LOG_LINE (a] swarming.summary@    {@@@",
   1584       "@@@STEP_LOG_LINE (a] swarming.summary@      \"abandoned_ts\": null, @@@",
   1585       "@@@STEP_LOG_LINE (a] swarming.summary@      \"bot_id\": \"vm30\", @@@",
   1586       "@@@STEP_LOG_LINE (a] swarming.summary@      \"completed_ts\": \"2014-09-25T01:42:00.123\", @@@",
   1587       "@@@STEP_LOG_LINE (a] swarming.summary@      \"created_ts\": \"2014-09-25T01:41:00.123\", @@@",
   1588       "@@@STEP_LOG_LINE (a] swarming.summary@      \"durations\": [@@@",
   1589       "@@@STEP_LOG_LINE (a] swarming.summary@        5.7, @@@",
   1590       "@@@STEP_LOG_LINE (a] swarming.summary@        31.5@@@",
   1591       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1592       "@@@STEP_LOG_LINE (a] swarming.summary@      \"exit_codes\": [@@@",
   1593       "@@@STEP_LOG_LINE (a] swarming.summary@        0, @@@",
   1594       "@@@STEP_LOG_LINE (a] swarming.summary@        0@@@",
   1595       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1596       "@@@STEP_LOG_LINE (a] swarming.summary@      \"failure\": false, @@@",
   1597       "@@@STEP_LOG_LINE (a] swarming.summary@      \"id\": \"148aa78d7aa0000\", @@@",
   1598       "@@@STEP_LOG_LINE (a] swarming.summary@      \"internal_failure\": false, @@@",
   1599       "@@@STEP_LOG_LINE (a] swarming.summary@      \"isolated_out\": {@@@",
   1600       "@@@STEP_LOG_LINE (a] swarming.summary@        \"isolated\": \"abc123\", @@@",
   1601       "@@@STEP_LOG_LINE (a] swarming.summary@        \"isolatedserver\": \"https://isolateserver.appspot.com\", @@@",
   1602       "@@@STEP_LOG_LINE (a] swarming.summary@        \"namespace\": \"default-gzip\", @@@",
   1603       "@@@STEP_LOG_LINE (a] swarming.summary@        \"view_url\": \"blah\"@@@",
   1604       "@@@STEP_LOG_LINE (a] swarming.summary@      }, @@@",
   1605       "@@@STEP_LOG_LINE (a] swarming.summary@      \"modified_ts\": \"2014-09-25 01:42:00\", @@@",
   1606       "@@@STEP_LOG_LINE (a] swarming.summary@      \"name\": \"heartbeat-canary-2014-09-25_01:41:55-os=Windows\", @@@",
   1607       "@@@STEP_LOG_LINE (a] swarming.summary@      \"outputs\": [@@@",
   1608       "@@@STEP_LOG_LINE (a] swarming.summary@        \"Heart beat succeeded on win32.\\n\", @@@",
   1609       "@@@STEP_LOG_LINE (a] swarming.summary@        \"Foo\"@@@",
   1610       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1611       "@@@STEP_LOG_LINE (a] swarming.summary@      \"outputs_ref\": {@@@",
   1612       "@@@STEP_LOG_LINE (a] swarming.summary@        \"view_url\": \"blah\"@@@",
   1613       "@@@STEP_LOG_LINE (a] swarming.summary@      }, @@@",
   1614       "@@@STEP_LOG_LINE (a] swarming.summary@      \"started_ts\": \"2014-09-25T01:42:11.123\", @@@",
   1615       "@@@STEP_LOG_LINE (a] swarming.summary@      \"state\": 112, @@@",
   1616       "@@@STEP_LOG_LINE (a] swarming.summary@      \"try_number\": 1, @@@",
   1617       "@@@STEP_LOG_LINE (a] swarming.summary@      \"user\": \"unknown\"@@@",
   1618       "@@@STEP_LOG_LINE (a] swarming.summary@    }@@@",
   1619       "@@@STEP_LOG_LINE (a] swarming.summary@  ]@@@",
   1620       "@@@STEP_LOG_LINE (a] swarming.summary@}@@@",
   1621       "@@@STEP_LOG_END (a] swarming.summary@@@",
   1622       "@@@STEP_LINK@shard #0 isolated out@blah@@@",
   1623       "@@@STEP_LINK@view steps on Milo@https://luci-milo.appspot.com/swarming/task/148aa78d7aa0000@@@"
   1624     ]
   1625   },
   1626   {
   1627     "cmd": [
   1628       "python",
   1629       "-u",
   1630       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
   1631       "--json-output",
   1632       "/path/to/tmp/json",
   1633       "listdir",
   1634       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-4/0"
   1635     ],
   1636     "infra_step": true,
   1637     "name": "listdir output dir (4)",
   1638     "stdout": "/path/to/tmp/",
   1639     "~followup_annotations": [
   1640       "@@@STEP_LOG_LINE@listdir@[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-4/0/file 1@@@",
   1641       "@@@STEP_LOG_LINE@listdir@[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-4/0/file 2@@@",
   1642       "@@@STEP_LOG_END@listdir@@@"
   1643     ]
   1644   },
   1645   {
   1646     "cmd": [
   1647       "gsutil",
   1648       "cp",
   1649       "-R",
   1650       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-4/0/file 1",
   1651       "gs://skia-perf/ct/All/2012/05/14/12/"
   1652     ],
   1653     "env": {
   1654       "AWS_CREDENTIAL_FILE": null,
   1655       "BOTO_CONFIG": null
   1656     },
   1657     "infra_step": true,
   1658     "name": "upload json output (7)"
   1659   },
   1660   {
   1661     "cmd": [
   1662       "gsutil",
   1663       "cp",
   1664       "-R",
   1665       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-4/0/file 2",
   1666       "gs://skia-perf/ct/All/2012/05/14/12/"
   1667     ],
   1668     "env": {
   1669       "AWS_CREDENTIAL_FILE": null,
   1670       "BOTO_CONFIG": null
   1671     },
   1672     "infra_step": true,
   1673     "name": "upload json output (8)"
   1674   },
   1675   {
   1676     "cmd": [
   1677       "python",
   1678       "-u",
   1679       "RECIPE_MODULE[skia::swarming]/resources/collect_task.py",
   1680       "-o",
   1681       "/path/to/tmp/json",
   1682       "--task-output-dir",
   1683       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-5",
   1684       "--merge-script",
   1685       "RECIPE_MODULE[skia::swarming]/resources/noop_merge.py",
   1686       "--merge-additional-args",
   1687       "[]",
   1688       "--",
   1689       "python",
   1690       "-u",
   1691       "[START_DIR]/swarming.client/swarming.py",
   1692       "collect",
   1693       "--swarming",
   1694       "https://chromium-swarm.appspot.com",
   1695       "--decorate",
   1696       "--print-status-updates",
   1697       "--json",
   1698       "{\"base_task_name\": \"ct-nanobench-5/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\", \"tasks\": {\"ct-nanobench-5/Ubuntu-14.04/[dummy has/Perf-Ubuntu14-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-CT_BENCH_1k_SKPs/-1\": {\"shard_index\": 0, \"task_id\": \"10000\", \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"}}}",
   1699       "--task-summary-json",
   1700       "/path/to/tmp/json"
   1701     ],
   1702     "name": "ct-nanobench-5",
   1703     "~followup_annotations": [
   1704       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>swarming pending 71s@@@",
   1705       "@@@STEP_LOG_LINE (a] json.output@{}@@@",
   1706       "@@@STEP_LOG_END (a] json.output@@@",
   1707       "@@@STEP_LOG_LINE (a] swarming.summary@{@@@",
   1708       "@@@STEP_LOG_LINE (a] swarming.summary@  \"shards\": [@@@",
   1709       "@@@STEP_LOG_LINE (a] swarming.summary@    {@@@",
   1710       "@@@STEP_LOG_LINE (a] swarming.summary@      \"abandoned_ts\": null, @@@",
   1711       "@@@STEP_LOG_LINE (a] swarming.summary@      \"bot_id\": \"vm30\", @@@",
   1712       "@@@STEP_LOG_LINE (a] swarming.summary@      \"completed_ts\": \"2014-09-25T01:42:00.123\", @@@",
   1713       "@@@STEP_LOG_LINE (a] swarming.summary@      \"created_ts\": \"2014-09-25T01:41:00.123\", @@@",
   1714       "@@@STEP_LOG_LINE (a] swarming.summary@      \"durations\": [@@@",
   1715       "@@@STEP_LOG_LINE (a] swarming.summary@        5.7, @@@",
   1716       "@@@STEP_LOG_LINE (a] swarming.summary@        31.5@@@",
   1717       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1718       "@@@STEP_LOG_LINE (a] swarming.summary@      \"exit_codes\": [@@@",
   1719       "@@@STEP_LOG_LINE (a] swarming.summary@        0, @@@",
   1720       "@@@STEP_LOG_LINE (a] swarming.summary@        0@@@",
   1721       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1722       "@@@STEP_LOG_LINE (a] swarming.summary@      \"failure\": false, @@@",
   1723       "@@@STEP_LOG_LINE (a] swarming.summary@      \"id\": \"148aa78d7aa0000\", @@@",
   1724       "@@@STEP_LOG_LINE (a] swarming.summary@      \"internal_failure\": false, @@@",
   1725       "@@@STEP_LOG_LINE (a] swarming.summary@      \"isolated_out\": {@@@",
   1726       "@@@STEP_LOG_LINE (a] swarming.summary@        \"isolated\": \"abc123\", @@@",
   1727       "@@@STEP_LOG_LINE (a] swarming.summary@        \"isolatedserver\": \"https://isolateserver.appspot.com\", @@@",
   1728       "@@@STEP_LOG_LINE (a] swarming.summary@        \"namespace\": \"default-gzip\", @@@",
   1729       "@@@STEP_LOG_LINE (a] swarming.summary@        \"view_url\": \"blah\"@@@",
   1730       "@@@STEP_LOG_LINE (a] swarming.summary@      }, @@@",
   1731       "@@@STEP_LOG_LINE (a] swarming.summary@      \"modified_ts\": \"2014-09-25 01:42:00\", @@@",
   1732       "@@@STEP_LOG_LINE (a] swarming.summary@      \"name\": \"heartbeat-canary-2014-09-25_01:41:55-os=Windows\", @@@",
   1733       "@@@STEP_LOG_LINE (a] swarming.summary@      \"outputs\": [@@@",
   1734       "@@@STEP_LOG_LINE (a] swarming.summary@        \"Heart beat succeeded on win32.\\n\", @@@",
   1735       "@@@STEP_LOG_LINE (a] swarming.summary@        \"Foo\"@@@",
   1736       "@@@STEP_LOG_LINE (a] swarming.summary@      ], @@@",
   1737       "@@@STEP_LOG_LINE (a] swarming.summary@      \"outputs_ref\": {@@@",
   1738       "@@@STEP_LOG_LINE (a] swarming.summary@        \"view_url\": \"blah\"@@@",
   1739       "@@@STEP_LOG_LINE (a] swarming.summary@      }, @@@",
   1740       "@@@STEP_LOG_LINE (a] swarming.summary@      \"started_ts\": \"2014-09-25T01:42:11.123\", @@@",
   1741       "@@@STEP_LOG_LINE (a] swarming.summary@      \"state\": 112, @@@",
   1742       "@@@STEP_LOG_LINE (a] swarming.summary@      \"try_number\": 1, @@@",
   1743       "@@@STEP_LOG_LINE (a] swarming.summary@      \"user\": \"unknown\"@@@",
   1744       "@@@STEP_LOG_LINE (a] swarming.summary@    }@@@",
   1745       "@@@STEP_LOG_LINE (a] swarming.summary@  ]@@@",
   1746       "@@@STEP_LOG_LINE (a] swarming.summary@}@@@",
   1747       "@@@STEP_LOG_END (a] swarming.summary@@@",
   1748       "@@@STEP_LINK@shard #0 isolated out@blah@@@",
   1749       "@@@STEP_LINK@view steps on Milo@https://luci-milo.appspot.com/swarming/task/148aa78d7aa0000@@@"
   1750     ]
   1751   },
   1752   {
   1753     "cmd": [
   1754       "python",
   1755       "-u",
   1756       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
   1757       "--json-output",
   1758       "/path/to/tmp/json",
   1759       "listdir",
   1760       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-5/0"
   1761     ],
   1762     "infra_step": true,
   1763     "name": "listdir output dir (5)",
   1764     "stdout": "/path/to/tmp/",
   1765     "~followup_annotations": [
   1766       "@@@STEP_LOG_LINE@listdir@[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-5/0/file 1@@@",
   1767       "@@@STEP_LOG_LINE@listdir@[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-5/0/file 2@@@",
   1768       "@@@STEP_LOG_END@listdir@@@"
   1769     ]
   1770   },
   1771   {
   1772     "cmd": [
   1773       "gsutil",
   1774       "cp",
   1775       "-R",
   1776       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-5/0/file 1",
   1777       "gs://skia-perf/ct/All/2012/05/14/12/"
   1778     ],
   1779     "env": {
   1780       "AWS_CREDENTIAL_FILE": null,
   1781       "BOTO_CONFIG": null
   1782     },
   1783     "infra_step": true,
   1784     "name": "upload json output (9)"
   1785   },
   1786   {
   1787     "cmd": [
   1788       "gsutil",
   1789       "cp",
   1790       "-R",
   1791       "[START_DIR]/swarming_temp_dir/outputs/ct-nanobench-5/0/file 2",
   1792       "gs://skia-perf/ct/All/2012/05/14/12/"
   1793     ],
   1794     "env": {
   1795       "AWS_CREDENTIAL_FILE": null,
   1796       "BOTO_CONFIG": null
   1797     },
   1798     "infra_step": true,
   1799     "name": "upload json output (10)"
   1800   },
   1801   {
   1802     "name": "$result",
   1803     "recipe_result": null,
   1804     "status_code": 0
   1805   }
   1806 ]