1[ 2 { 3 "cmd": [ 4 "python", 5 "-u", 6 "RECIPE_MODULE[depot_tools::git]\\resources\\git_setup.py", 7 "--path", 8 "[START_DIR]\\skia", 9 "--url", 10 "https://skia.googlesource.com/skia.git" 11 ], 12 "name": "git setup" 13 }, 14 { 15 "cmd": [ 16 "git", 17 "fetch", 18 "origin", 19 "abc123", 20 "--progress" 21 ], 22 "cwd": "[START_DIR]\\skia", 23 "env": { 24 "PATH": "RECIPE_REPO[depot_tools];<PATH>" 25 }, 26 "infra_step": true, 27 "name": "git fetch" 28 }, 29 { 30 "cmd": [ 31 "git", 32 "checkout", 33 "-f", 34 "FETCH_HEAD" 35 ], 36 "cwd": "[START_DIR]\\skia", 37 "infra_step": true, 38 "name": "git checkout" 39 }, 40 { 41 "cmd": [ 42 "git", 43 "rev-parse", 44 "HEAD" 45 ], 46 "cwd": "[START_DIR]\\skia", 47 "infra_step": true, 48 "name": "read revision", 49 "~followup_annotations": [ 50 "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" 51 ] 52 }, 53 { 54 "cmd": [ 55 "git", 56 "clean", 57 "-f", 58 "-d", 59 "-x" 60 ], 61 "cwd": "[START_DIR]\\skia", 62 "infra_step": true, 63 "name": "git clean" 64 }, 65 { 66 "cmd": [ 67 "python", 68 "-u", 69 "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", 70 "--json-output", 71 "/path/to/tmp/json", 72 "ensure-directory", 73 "--mode", 74 "0777", 75 "[START_DIR]\\tmp" 76 ], 77 "infra_step": true, 78 "name": "makedirs tmp_dir" 79 }, 80 { 81 "cmd": [ 82 "python", 83 "-u", 84 "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", 85 "--json-output", 86 "/path/to/tmp/json", 87 "copy", 88 "[START_DIR]\\skia\\infra\\bots\\assets\\clang_win\\VERSION", 89 "/path/to/tmp/" 90 ], 91 "infra_step": true, 92 "name": "Get clang_win VERSION" 93 }, 94 { 95 "cmd": [ 96 "python", 97 "-u", 98 "[START_DIR]\\skia\\bin\\fetch-gn" 99 ], 100 "cwd": "[START_DIR]\\skia", 101 "env": { 102 "CHROME_HEADLESS": "1", 103 "PATH": "<PATH>;RECIPE_REPO[depot_tools]" 104 }, 105 "infra_step": true, 106 "name": "fetch-gn" 107 }, 108 { 109 "cmd": [ 110 "[START_DIR]\\skia\\bin\\gn", 111 "gen", 112 "[START_DIR]\\skia\\out\\Build-Win10-Clang-x86_64-Release-NoDEPS\\Release_x64", 113 "--args=cc=\"clang\" clang_win=\"[START_DIR]\\clang_win\" cxx=\"clang++\" extra_cflags=[\"-DDUMMY_clang_win_version=42\"] is_debug=false is_official_build=true skia_enable_fontmgr_empty=true skia_enable_gpu=true skia_enable_pdf=false skia_use_expat=false skia_use_freetype=false skia_use_harfbuzz=false skia_use_libjpeg_turbo=false skia_use_libpng=false skia_use_libwebp=false skia_use_vulkan=false skia_use_zlib=false target_cpu=\"x86_64\" werror=true win_sdk=\"[START_DIR]\\win_toolchain/win_sdk\" win_vc=\"[START_DIR]\\win_toolchain/VC\"" 114 ], 115 "cwd": "[START_DIR]\\skia", 116 "env": { 117 "CHROME_HEADLESS": "1", 118 "PATH": "<PATH>;RECIPE_REPO[depot_tools]" 119 }, 120 "name": "gn gen" 121 }, 122 { 123 "cmd": [ 124 "ninja", 125 "-C", 126 "[START_DIR]\\skia\\out\\Build-Win10-Clang-x86_64-Release-NoDEPS\\Release_x64" 127 ], 128 "cwd": "[START_DIR]\\skia", 129 "env": { 130 "CHROME_HEADLESS": "1", 131 "PATH": "<PATH>;RECIPE_REPO[depot_tools]" 132 }, 133 "name": "ninja" 134 }, 135 { 136 "cmd": [ 137 "python", 138 "-u", 139 "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'hello-opencl', 'hello-opencl.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'skottie_tool', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\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", 140 "[START_DIR]\\skia\\out\\Build-Win10-Clang-x86_64-Release-NoDEPS\\Release_x64", 141 "[START_DIR]\\[SWARM_OUT_DIR]" 142 ], 143 "infra_step": true, 144 "name": "copy build products", 145 "~followup_annotations": [ 146 "@@@STEP_LOG_LINE@python.inline@import errno@@@", 147 "@@@STEP_LOG_LINE@python.inline@import glob@@@", 148 "@@@STEP_LOG_LINE@python.inline@import os@@@", 149 "@@@STEP_LOG_LINE@python.inline@import shutil@@@", 150 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 151 "@@@STEP_LOG_LINE@python.inline@@@@", 152 "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@", 153 "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@", 154 "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'hello-opencl', 'hello-opencl.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'skottie_tool', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@", 155 "@@@STEP_LOG_LINE@python.inline@@@@", 156 "@@@STEP_LOG_LINE@python.inline@try:@@@", 157 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@", 158 "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@", 159 "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@", 160 "@@@STEP_LOG_LINE@python.inline@ raise@@@", 161 "@@@STEP_LOG_LINE@python.inline@@@@", 162 "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@", 163 "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@", 164 "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@", 165 "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@", 166 "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@", 167 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@", 168 "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@", 169 "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@", 170 "@@@STEP_LOG_END@python.inline@@@" 171 ] 172 }, 173 { 174 "cmd": [ 175 "python", 176 "-u", 177 "import 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" 178 ], 179 "infra_step": true, 180 "name": "cleanup", 181 "~followup_annotations": [ 182 "@@@STEP_LOG_LINE@python.inline@import psutil@@@", 183 "@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@", 184 "@@@STEP_LOG_LINE@python.inline@ try:@@@", 185 "@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@", 186 "@@@STEP_LOG_LINE@python.inline@ p.kill()@@@", 187 "@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@", 188 "@@@STEP_LOG_LINE@python.inline@ pass@@@", 189 "@@@STEP_LOG_END@python.inline@@@" 190 ] 191 }, 192 { 193 "name": "$result" 194 } 195]