[
  {
    "cmd": [
      "vpython",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "copy",
      "[START_DIR]\\skia\\infra\\bots\\assets\\clang_win\\VERSION",
      "/path/to/tmp/"
    ],
    "infra_step": true,
    "name": "Get clang_win VERSION",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@VERSION@42@@@",
      "@@@STEP_LOG_END@VERSION@@@"
    ]
  },
  {
    "cmd": [
      "python",
      "-u",
      "[START_DIR]\\skia\\bin\\fetch-gn"
    ],
    "cwd": "[START_DIR]\\skia",
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>;RECIPE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "fetch-gn"
  },
  {
    "cmd": [
      "[START_DIR]\\skia\\bin\\gn",
      "gen",
      "[START_DIR]\\cache\\work\\skia\\out\\Build-Win-Clang-x86-Debug\\Debug",
      "--args=cc=\"clang\" clang_win=\"[START_DIR]\\clang_win\" cxx=\"clang++\" extra_cflags=[\"-O1\", \"-DPLACEHOLDER_clang_win_version=42\"] target_cpu=\"x86\" werror=true win_sdk=\"[START_DIR]\\win_toolchain/win_sdk\" win_vc=\"[START_DIR]\\win_toolchain/VC\""
    ],
    "cwd": "[START_DIR]\\skia",
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>;RECIPE_REPO[depot_tools]"
    },
    "name": "gn gen"
  },
  {
    "cmd": [
      "ninja",
      "-C",
      "[START_DIR]\\cache\\work\\skia\\out\\Build-Win-Clang-x86-Debug\\Debug"
    ],
    "cwd": "[START_DIR]\\skia",
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>;RECIPE_REPO[depot_tools]"
    },
    "name": "ninja"
  },
  {
    "cmd": [
      "python",
      "-u",
      "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products = ['dm', 'dm.exe', 'dm.app', 'fm', 'fm.exe', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']\n\ntry:\n  os.makedirs(dst)\nexcept OSError as e:\n  if e.errno != errno.EEXIST:\n    raise\n\nfor pattern in build_products:\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",
      "[START_DIR]\\cache\\work\\skia\\out\\Build-Win-Clang-x86-Debug\\Debug",
      "[START_DIR]\\[SWARM_OUT_DIR]"
    ],
    "infra_step": true,
    "name": "copy build products",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@import errno@@@",
      "@@@STEP_LOG_LINE@python.inline@import glob@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
      "@@@STEP_LOG_LINE@python.inline@build_products = ['dm', 'dm.exe', 'dm.app', 'fm', 'fm.exe', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@try:@@@",
      "@@@STEP_LOG_LINE@python.inline@  os.makedirs(dst)@@@",
      "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
      "@@@STEP_LOG_LINE@python.inline@  if e.errno != errno.EEXIST:@@@",
      "@@@STEP_LOG_LINE@python.inline@    raise@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@for pattern in build_products:@@@",
      "@@@STEP_LOG_LINE@python.inline@  path = os.path.join(src, pattern)@@@",
      "@@@STEP_LOG_LINE@python.inline@  for f in glob.glob(path):@@@",
      "@@@STEP_LOG_LINE@python.inline@    dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
      "@@@STEP_LOG_LINE@python.inline@    if not os.path.isdir(os.path.dirname(dst_path)):@@@",
      "@@@STEP_LOG_LINE@python.inline@      os.makedirs(os.path.dirname(dst_path))@@@",
      "@@@STEP_LOG_LINE@python.inline@    print('Copying build product %s to %s' % (f, dst_path))@@@",
      "@@@STEP_LOG_LINE@python.inline@    shutil.move(f, dst_path)@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "vpython",
      "-u",
      "\n# [VPYTHON:BEGIN]\n# wheel: <\n#  name: \"infra/python/wheels/psutil/${vpython_platform}\"\n#  version: \"version:5.8.0.chromium.2\"\n# >\n# [VPYTHON:END]\n\nimport psutil\nfor p in psutil.process_iter():\n  try:\n    if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n      p.kill()\n  except psutil._error.AccessDenied:\n    pass\n"
    ],
    "infra_step": true,
    "name": "cleanup",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@# [VPYTHON:BEGIN]@@@",
      "@@@STEP_LOG_LINE@python.inline@# wheel: <@@@",
      "@@@STEP_LOG_LINE@python.inline@#  name: \"infra/python/wheels/psutil/${vpython_platform}\"@@@",
      "@@@STEP_LOG_LINE@python.inline@#  version: \"version:5.8.0.chromium.2\"@@@",
      "@@@STEP_LOG_LINE@python.inline@# >@@@",
      "@@@STEP_LOG_LINE@python.inline@# [VPYTHON:END]@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import psutil@@@",
      "@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
      "@@@STEP_LOG_LINE@python.inline@  try:@@@",
      "@@@STEP_LOG_LINE@python.inline@    if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
      "@@@STEP_LOG_LINE@python.inline@      p.kill()@@@",
      "@@@STEP_LOG_LINE@python.inline@  except psutil._error.AccessDenied:@@@",
      "@@@STEP_LOG_LINE@python.inline@    pass@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "name": "$result"
  }
]