[
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nCHROMECAST_IP_FILE = os.path.expanduser('~/chromecast.txt')\nwith open(CHROMECAST_IP_FILE, 'r') as f:\n  print f.read()\n"
    ],
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "read chromecast ip",
    "stdout": "/path/to/tmp/",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@CHROMECAST_IP_FILE = os.path.expanduser('~/chromecast.txt')@@@",
      "@@@STEP_LOG_LINE@python.inline@with open(CHROMECAST_IP_FILE, 'r') as f:@@@",
      "@@@STEP_LOG_LINE@python.inline@  print f.read()@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "adb",
      "connect",
      "192.168.1.2:5555"
    ],
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "adb connect 192.168.1.2:5555"
  },
  {
    "cmd": [
      "adb",
      "shell",
      "mkdir",
      "-p",
      "/cache/skia/resources"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "mkdir /cache/skia/resources"
  },
  {
    "cmd": [
      "adb",
      "shell",
      "mkdir",
      "-p",
      "/cache/skia/bin"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "mkdir /cache/skia/bin"
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nhost   = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n  p = os.path.relpath(d, host)\n  if p != '.' and p.startswith('.'):\n    continue\n  for f in fs:\n    print os.path.join(p,f)\n    hp = os.path.realpath(os.path.join(host, p, f))\n    if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n      print \"Skipping because it is too big\"\n    else:\n      subprocess.check_call(['adb', 'push',\n                            hp, os.path.join(device, p, f)])\n",
      "[START_DIR]/skia/resources",
      "/cache/skia/resources"
    ],
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "push [START_DIR]/skia/resources/* /cache/skia/resources",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@host   = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
      "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
      "@@@STEP_LOG_LINE@python.inline@  p = os.path.relpath(d, host)@@@",
      "@@@STEP_LOG_LINE@python.inline@  if p != '.' and p.startswith('.'):@@@",
      "@@@STEP_LOG_LINE@python.inline@    continue@@@",
      "@@@STEP_LOG_LINE@python.inline@  for f in fs:@@@",
      "@@@STEP_LOG_LINE@python.inline@    print os.path.join(p,f)@@@",
      "@@@STEP_LOG_LINE@python.inline@    hp = os.path.realpath(os.path.join(host, p, f))@@@",
      "@@@STEP_LOG_LINE@python.inline@    if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@",
      "@@@STEP_LOG_LINE@python.inline@      print \"Skipping because it is too big\"@@@",
      "@@@STEP_LOG_LINE@python.inline@    else:@@@",
      "@@@STEP_LOG_LINE@python.inline@      subprocess.check_call(['adb', 'push',@@@",
      "@@@STEP_LOG_LINE@python.inline@                            hp, os.path.join(device, p, f)])@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "python",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "copy",
      "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
      "/path/to/tmp/"
    ],
    "infra_step": true,
    "name": "Get skp VERSION"
  },
  {
    "cmd": [
      "python",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "copy",
      "42",
      "[START_DIR]/tmp/SKP_VERSION"
    ],
    "infra_step": true,
    "name": "write SKP_VERSION"
  },
  {
    "cmd": [
      "adb",
      "shell",
      "cat",
      "/cache/skia/SKP_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "read /cache/skia/SKP_VERSION",
    "stdout": "/path/to/tmp/"
  },
  {
    "cmd": [
      "adb",
      "shell",
      "rm",
      "-f",
      "/cache/skia/SKP_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "rm /cache/skia/SKP_VERSION"
  },
  {
    "cmd": [
      "adb",
      "shell",
      "rm",
      "-r",
      "/cache/skia/skps"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "rm /cache/skia/skps"
  },
  {
    "cmd": [
      "adb",
      "shell",
      "mkdir",
      "-p",
      "/cache/skia/skps"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "mkdir /cache/skia/skps"
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nhost   = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n  p = os.path.relpath(d, host)\n  if p != '.' and p.startswith('.'):\n    continue\n  for f in fs:\n    print os.path.join(p,f)\n    hp = os.path.realpath(os.path.join(host, p, f))\n    if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n      print \"Skipping because it is too big\"\n    else:\n      subprocess.check_call(['adb', 'push',\n                            hp, os.path.join(device, p, f)])\n",
      "[START_DIR]/skp",
      "/cache/skia/skps"
    ],
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "push [START_DIR]/skp/* /cache/skia/skps",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@host   = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
      "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
      "@@@STEP_LOG_LINE@python.inline@  p = os.path.relpath(d, host)@@@",
      "@@@STEP_LOG_LINE@python.inline@  if p != '.' and p.startswith('.'):@@@",
      "@@@STEP_LOG_LINE@python.inline@    continue@@@",
      "@@@STEP_LOG_LINE@python.inline@  for f in fs:@@@",
      "@@@STEP_LOG_LINE@python.inline@    print os.path.join(p,f)@@@",
      "@@@STEP_LOG_LINE@python.inline@    hp = os.path.realpath(os.path.join(host, p, f))@@@",
      "@@@STEP_LOG_LINE@python.inline@    if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@",
      "@@@STEP_LOG_LINE@python.inline@      print \"Skipping because it is too big\"@@@",
      "@@@STEP_LOG_LINE@python.inline@    else:@@@",
      "@@@STEP_LOG_LINE@python.inline@      subprocess.check_call(['adb', 'push',@@@",
      "@@@STEP_LOG_LINE@python.inline@                            hp, os.path.join(device, p, f)])@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "adb",
      "push",
      "[START_DIR]/tmp/SKP_VERSION",
      "/cache/skia/SKP_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "push [START_DIR]/tmp/SKP_VERSION /cache/skia/SKP_VERSION"
  },
  {
    "cmd": [
      "python",
      "-u",
      "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
    ],
    "name": "get swarming bot id",
    "stdout": "/path/to/tmp/",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "python",
      "-u",
      "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
    ],
    "name": "get swarming task id",
    "stdout": "/path/to/tmp/",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "adb",
      "push",
      "[START_DIR]/build/out/Debug/nanobench",
      "/cache/skia/bin"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "push nanobench"
  },
  {
    "cmd": [
      "ssh",
      "-oConnectTimeout=15",
      "-oBatchMode=yes",
      "-t",
      "-t",
      "root@192.168.1.2",
      "/cache/skia/bin/nanobench",
      "--nogpu",
      "--config",
      "8888",
      "-i",
      "/cache/skia/resources",
      "--images",
      "/cache/skia/resources/images/color_wheel.jpg",
      "--skps",
      "/cache/skia/skps",
      "--pre_log",
      "--match",
      "~matrixconvolution",
      "~blur_image_filter",
      "~blur_0.01",
      "~GM_animated-image-blurs",
      "~blendmode_mask_",
      "~desk_carsvg.skp",
      "~^path_text_clipped",
      "~shapes_rrect_inner_rrect_50_500x500"
    ],
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "name": "nanobench"
  },
  {
    "cmd": [
      "ssh",
      "-oConnectTimeout=15",
      "-oBatchMode=yes",
      "-t",
      "-t",
      "root@192.168.1.2",
      "rm",
      "-r",
      "/cache/skia/bin"
    ],
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "Delete executables"
  },
  {
    "cmd": [
      "adb",
      "disconnect"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "disconnect"
  },
  {
    "cmd": [
      "adb",
      "connect",
      "192.168.1.2:5555"
    ],
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "adb connect 192.168.1.2:5555 (2)"
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n  tokens = line.split()\n  if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n    addr, path = tokens[-2:]\n    local = os.path.join(out, os.path.basename(path))\n    if os.path.exists(local):\n      sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n      line = line.replace(addr, addr + ' ' + sym.strip())\n  print line\n",
      "[START_DIR]/build/out/Debug"
    ],
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "dump log",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
      "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
      "@@@STEP_LOG_LINE@python.inline@  tokens = line.split()@@@",
      "@@@STEP_LOG_LINE@python.inline@  if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
      "@@@STEP_LOG_LINE@python.inline@    addr, path = tokens[-2:]@@@",
      "@@@STEP_LOG_LINE@python.inline@    local = os.path.join(out, os.path.basename(path))@@@",
      "@@@STEP_LOG_LINE@python.inline@    if os.path.exists(local):@@@",
      "@@@STEP_LOG_LINE@python.inline@      sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
      "@@@STEP_LOG_LINE@python.inline@      line = line.replace(addr, addr + ' ' + sym.strip())@@@",
      "@@@STEP_LOG_LINE@python.inline@  print line@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "adb",
      "disconnect"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "disconnect (2)"
  },
  {
    "cmd": [
      "adb",
      "kill-server"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "BUILDTYPE": "Debug",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
      "SKIA_OUT": "[START_DIR]/build/out"
    },
    "infra_step": true,
    "name": "kill adb server"
  },
  {
    "name": "$result",
    "recipe_result": null,
    "status_code": 0
  }
]