1[ 2 { 3 "cmd": [ 4 "python", 5 "-u", 6 "\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint 'git was found at %s' % git\nif 'cipd_bin_packages' not in git:\n print >> sys.stderr, 'Git must be obtained through CIPD.'\n sys.exit(1)\n" 7 ], 8 "env": { 9 "CHROME_HEADLESS": "1", 10 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 11 }, 12 "name": "Assert that Git is from CIPD", 13 "~followup_annotations": [ 14 "@@@STEP_LOG_LINE@python.inline@@@@", 15 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 16 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 17 "@@@STEP_LOG_LINE@python.inline@@@@", 18 "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", 19 "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", 20 "@@@STEP_LOG_LINE@python.inline@print 'git was found at %s' % git@@@", 21 "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", 22 "@@@STEP_LOG_LINE@python.inline@ print >> sys.stderr, 'Git must be obtained through CIPD.'@@@", 23 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", 24 "@@@STEP_LOG_END@python.inline@@@" 25 ] 26 }, 27 { 28 "cmd": [ 29 "vpython", 30 "-u", 31 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 32 "--json-output", 33 "/path/to/tmp/json", 34 "ensure-directory", 35 "--mode", 36 "0777", 37 "[START_DIR]/cache/work" 38 ], 39 "infra_step": true, 40 "name": "makedirs checkout_path" 41 }, 42 { 43 "cmd": [ 44 "vpython", 45 "-u", 46 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 47 "--json-output", 48 "/path/to/tmp/json", 49 "remove", 50 "[START_DIR]/cache/work/.gclient_entries" 51 ], 52 "infra_step": true, 53 "name": "remove [START_DIR]/cache/work/.gclient_entries" 54 }, 55 { 56 "cmd": [ 57 "python", 58 "-u", 59 "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py", 60 "--spec-path", 61 "cache_dir = '[START_DIR]/cache/git'\nsolutions = [{'custom_vars': {'checkout_chromium': True}, 'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]", 62 "--patch_root", 63 "skia", 64 "--revision_mapping_file", 65 "{\"got_revision\": \"skia\"}", 66 "--git-cache-dir", 67 "[START_DIR]/cache/git", 68 "--cleanup-dir", 69 "[CLEANUP]/bot_update", 70 "--output_json", 71 "/path/to/tmp/json", 72 "--revision", 73 "skia@abc123" 74 ], 75 "cwd": "[START_DIR]/cache/work", 76 "env": { 77 "GIT_HTTP_LOW_SPEED_LIMIT": "102400", 78 "GIT_HTTP_LOW_SPEED_TIME": "1800" 79 }, 80 "env_suffixes": { 81 "DEPOT_TOOLS_UPDATE": [ 82 "0" 83 ], 84 "PATH": [ 85 "RECIPE_REPO[depot_tools]" 86 ] 87 }, 88 "infra_step": true, 89 "name": "bot_update", 90 "~followup_annotations": [ 91 "@@@STEP_TEXT@Some step text@@@", 92 "@@@STEP_LOG_LINE@json.output@{@@@", 93 "@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@", 94 "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@", 95 "@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@", 96 "@@@STEP_LOG_LINE@json.output@ }, @@@", 97 "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@", 98 "@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@", 99 "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@", 100 "@@@STEP_LOG_LINE@json.output@ \"revision\": \"abc123\"@@@", 101 "@@@STEP_LOG_LINE@json.output@ }@@@", 102 "@@@STEP_LOG_LINE@json.output@ }, @@@", 103 "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@", 104 "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@", 105 "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@", 106 "@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"abc123\", @@@", 107 "@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@", 108 "@@@STEP_LOG_LINE@json.output@ }, @@@", 109 "@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@", 110 "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@", 111 "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@", 112 "@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@", 113 "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@", 114 "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/skia.git\", @@@", 115 "@@@STEP_LOG_LINE@json.output@ \"revision\": \"abc123\"@@@", 116 "@@@STEP_LOG_LINE@json.output@ }@@@", 117 "@@@STEP_LOG_LINE@json.output@ }@@@", 118 "@@@STEP_LOG_LINE@json.output@ }, @@@", 119 "@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@", 120 "@@@STEP_LOG_LINE@json.output@ }, @@@", 121 "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@", 122 "@@@STEP_LOG_LINE@json.output@}@@@", 123 "@@@STEP_LOG_END@json.output@@@", 124 "@@@SET_BUILD_PROPERTY@got_revision@\"abc123\"@@@", 125 "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@" 126 ] 127 }, 128 { 129 "cmd": [ 130 "python", 131 "-u", 132 "RECIPE_REPO[depot_tools]/gclient.py", 133 "runhooks" 134 ], 135 "cwd": "[START_DIR]/cache/work", 136 "env": { 137 "DEPOT_TOOLS_UPDATE": "0", 138 "GYP_CHROMIUM_NO_ACTION": "0" 139 }, 140 "env_suffixes": { 141 "PATH": [ 142 "RECIPE_REPO[depot_tools]" 143 ] 144 }, 145 "name": "gclient runhooks" 146 }, 147 { 148 "cmd": [ 149 "vpython", 150 "-u", 151 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 152 "--json-output", 153 "/path/to/tmp/json", 154 "ensure-directory", 155 "--mode", 156 "0777", 157 "[START_DIR]/tmp" 158 ], 159 "infra_step": true, 160 "name": "makedirs tmp_dir" 161 }, 162 { 163 "cmd": [], 164 "name": "ensure xcode", 165 "~followup_annotations": [ 166 "@@@STEP_TEXT@Ensuring Xcode version 12c33 in [START_DIR]/cache/Xcode.app@@@" 167 ] 168 }, 169 { 170 "cmd": [ 171 "[START_DIR]/mac_toolchain/mac_toolchain", 172 "install", 173 "-kind", 174 "ios", 175 "-xcode-version", 176 "12c33", 177 "-output-dir", 178 "[START_DIR]/cache/Xcode.app" 179 ], 180 "name": "ensure xcode.install xcode", 181 "~followup_annotations": [ 182 "@@@STEP_NEST_LEVEL@1@@@" 183 ] 184 }, 185 { 186 "cmd": [ 187 "sudo", 188 "xcode-select", 189 "-switch", 190 "[START_DIR]/cache/Xcode.app" 191 ], 192 "name": "ensure xcode.select xcode", 193 "~followup_annotations": [ 194 "@@@STEP_NEST_LEVEL@1@@@" 195 ] 196 }, 197 { 198 "cmd": [ 199 "python", 200 "-u", 201 "[START_DIR]/cache/work/skia/tools/build_command_buffer.py", 202 "--chrome-dir", 203 "[START_DIR]/cache/work", 204 "--output-dir", 205 "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug", 206 "--extra-gn-args", 207 "mac_sdk_min=\"10.13\"", 208 "--no-sync", 209 "--no-hooks", 210 "--make-output-dir" 211 ], 212 "env": { 213 "CHROME_HEADLESS": "1", 214 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 215 }, 216 "name": "build command_buffer" 217 }, 218 { 219 "cmd": [ 220 "python", 221 "-u", 222 "[START_DIR]/cache/work/skia/bin/fetch-gn" 223 ], 224 "cwd": "[START_DIR]/cache/work/skia", 225 "env": { 226 "CHROME_HEADLESS": "1", 227 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 228 }, 229 "infra_step": true, 230 "name": "fetch-gn" 231 }, 232 { 233 "cmd": [ 234 "[START_DIR]/ccache_mac/bin/ccache", 235 "-s" 236 ], 237 "cwd": "[START_DIR]/cache/work/skia", 238 "env": { 239 "CCACHE_COMPILERCHECK": "content", 240 "CCACHE_DIR": "[START_DIR]/cache/ccache", 241 "CCACHE_MAXFILES": "0", 242 "CCACHE_MAXSIZE": "50G", 243 "CHROME_HEADLESS": "1", 244 "MACOSX_DEPLOYMENT_TARGET": "10.13", 245 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 246 }, 247 "name": "ccache stats-start" 248 }, 249 { 250 "cmd": [ 251 "[START_DIR]/cache/work/skia/bin/gn", 252 "gen", 253 "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug", 254 "--args=cc=\"clang\" cc_wrapper=\"[START_DIR]/ccache_mac/bin/ccache\" cxx=\"clang++\" extra_cflags=[\"-DREBUILD_IF_CHANGED_xcode_build_version=12c33\", \"-O1\"] skia_gl_standard=\"\" target_cpu=\"x86_64\" werror=true" 255 ], 256 "cwd": "[START_DIR]/cache/work/skia", 257 "env": { 258 "CCACHE_COMPILERCHECK": "content", 259 "CCACHE_DIR": "[START_DIR]/cache/ccache", 260 "CCACHE_MAXFILES": "0", 261 "CCACHE_MAXSIZE": "50G", 262 "CHROME_HEADLESS": "1", 263 "MACOSX_DEPLOYMENT_TARGET": "10.13", 264 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 265 }, 266 "name": "gn gen" 267 }, 268 { 269 "cmd": [ 270 "ninja", 271 "-C", 272 "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug" 273 ], 274 "cwd": "[START_DIR]/cache/work/skia", 275 "env": { 276 "CCACHE_COMPILERCHECK": "content", 277 "CCACHE_DIR": "[START_DIR]/cache/ccache", 278 "CCACHE_MAXFILES": "0", 279 "CCACHE_MAXSIZE": "50G", 280 "CHROME_HEADLESS": "1", 281 "MACOSX_DEPLOYMENT_TARGET": "10.13", 282 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 283 }, 284 "name": "ninja" 285 }, 286 { 287 "cmd": [ 288 "[START_DIR]/ccache_mac/bin/ccache", 289 "-s" 290 ], 291 "cwd": "[START_DIR]/cache/work/skia", 292 "env": { 293 "CCACHE_COMPILERCHECK": "content", 294 "CCACHE_DIR": "[START_DIR]/cache/ccache", 295 "CCACHE_MAXFILES": "0", 296 "CCACHE_MAXSIZE": "50G", 297 "CHROME_HEADLESS": "1", 298 "MACOSX_DEPLOYMENT_TARGET": "10.13", 299 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 300 }, 301 "name": "ccache stats-end" 302 }, 303 { 304 "cmd": [ 305 "python", 306 "-u", 307 "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', 'hello-opencl', 'hello-opencl.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk']\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", 308 "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug", 309 "[START_DIR]/[SWARM_OUT_DIR]" 310 ], 311 "infra_step": true, 312 "name": "copy build products", 313 "~followup_annotations": [ 314 "@@@STEP_LOG_LINE@python.inline@import errno@@@", 315 "@@@STEP_LOG_LINE@python.inline@import glob@@@", 316 "@@@STEP_LOG_LINE@python.inline@import os@@@", 317 "@@@STEP_LOG_LINE@python.inline@import shutil@@@", 318 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 319 "@@@STEP_LOG_LINE@python.inline@@@@", 320 "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@", 321 "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@", 322 "@@@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', 'hello-opencl', 'hello-opencl.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk']@@@", 323 "@@@STEP_LOG_LINE@python.inline@@@@", 324 "@@@STEP_LOG_LINE@python.inline@try:@@@", 325 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@", 326 "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@", 327 "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@", 328 "@@@STEP_LOG_LINE@python.inline@ raise@@@", 329 "@@@STEP_LOG_LINE@python.inline@@@@", 330 "@@@STEP_LOG_LINE@python.inline@for pattern in build_products:@@@", 331 "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@", 332 "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@", 333 "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@", 334 "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@", 335 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@", 336 "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@", 337 "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@", 338 "@@@STEP_LOG_END@python.inline@@@" 339 ] 340 }, 341 { 342 "name": "$result" 343 } 344]