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 "[START_DIR]\\tmp" 13 ], 14 "infra_step": true, 15 "name": "makedirs tmp_dir" 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 "copy", 25 "[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION", 26 "/path/to/tmp/" 27 ], 28 "infra_step": true, 29 "name": "Get skp VERSION" 30 }, 31 { 32 "cmd": [ 33 "python", 34 "-u", 35 "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", 36 "--json-output", 37 "/path/to/tmp/json", 38 "copy", 39 "42", 40 "[START_DIR]\\tmp\\SKP_VERSION" 41 ], 42 "infra_step": true, 43 "name": "write SKP_VERSION", 44 "~followup_annotations": [ 45 "@@@STEP_LOG_LINE@SKP_VERSION@42@@@", 46 "@@@STEP_LOG_END@SKP_VERSION@@@" 47 ] 48 }, 49 { 50 "cmd": [ 51 "python", 52 "-u", 53 "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", 54 "--json-output", 55 "/path/to/tmp/json", 56 "copy", 57 "[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION", 58 "/path/to/tmp/" 59 ], 60 "infra_step": true, 61 "name": "Get skimage VERSION" 62 }, 63 { 64 "cmd": [ 65 "python", 66 "-u", 67 "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", 68 "--json-output", 69 "/path/to/tmp/json", 70 "copy", 71 "42", 72 "[START_DIR]\\tmp\\SK_IMAGE_VERSION" 73 ], 74 "infra_step": true, 75 "name": "write SK_IMAGE_VERSION", 76 "~followup_annotations": [ 77 "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@", 78 "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@" 79 ] 80 }, 81 { 82 "cmd": [ 83 "python", 84 "-u", 85 "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", 86 "--json-output", 87 "/path/to/tmp/json", 88 "copy", 89 "[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION", 90 "/path/to/tmp/" 91 ], 92 "infra_step": true, 93 "name": "Get svg VERSION" 94 }, 95 { 96 "cmd": [ 97 "python", 98 "-u", 99 "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", 100 "--json-output", 101 "/path/to/tmp/json", 102 "copy", 103 "42", 104 "[START_DIR]\\tmp\\SVG_VERSION" 105 ], 106 "infra_step": true, 107 "name": "write SVG_VERSION", 108 "~followup_annotations": [ 109 "@@@STEP_LOG_LINE@SVG_VERSION@42@@@", 110 "@@@STEP_LOG_END@SVG_VERSION@@@" 111 ] 112 }, 113 { 114 "cmd": [ 115 "python", 116 "-u", 117 "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", 118 "--json-output", 119 "/path/to/tmp/json", 120 "rmtree", 121 "[START_DIR]\\test" 122 ], 123 "infra_step": true, 124 "name": "rmtree test" 125 }, 126 { 127 "cmd": [ 128 "python", 129 "-u", 130 "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", 131 "--json-output", 132 "/path/to/tmp/json", 133 "ensure-directory", 134 "--mode", 135 "0777", 136 "[START_DIR]\\test" 137 ], 138 "infra_step": true, 139 "name": "makedirs test" 140 }, 141 { 142 "cmd": [ 143 "python", 144 "-u", 145 "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = sys.argv[1]\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.argv[2], 'w') as f:\n f.write(hashes)\n break\n except Exception as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(waittime)\n", 146 "https://example.com/hashes.txt", 147 "[START_DIR]\\tmp\\uninteresting_hashes.txt" 148 ], 149 "env": { 150 "CHROME_HEADLESS": "1", 151 "PATH": "<PATH>;RECIPE_REPO[depot_tools]" 152 }, 153 "infra_step": true, 154 "name": "get uninteresting hashes", 155 "~followup_annotations": [ 156 "@@@STEP_LOG_LINE@python.inline@@@@", 157 "@@@STEP_LOG_LINE@python.inline@import contextlib@@@", 158 "@@@STEP_LOG_LINE@python.inline@import math@@@", 159 "@@@STEP_LOG_LINE@python.inline@import socket@@@", 160 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 161 "@@@STEP_LOG_LINE@python.inline@import time@@@", 162 "@@@STEP_LOG_LINE@python.inline@import urllib2@@@", 163 "@@@STEP_LOG_LINE@python.inline@@@@", 164 "@@@STEP_LOG_LINE@python.inline@HASHES_URL = sys.argv[1]@@@", 165 "@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@", 166 "@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@", 167 "@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@", 168 "@@@STEP_LOG_LINE@python.inline@@@@", 169 "@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@", 170 "@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@", 171 "@@@STEP_LOG_LINE@python.inline@ try:@@@", 172 "@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@", 173 "@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@", 174 "@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@", 175 "@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[2], 'w') as f:@@@", 176 "@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@", 177 "@@@STEP_LOG_LINE@python.inline@ break@@@", 178 "@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@", 179 "@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@", 180 "@@@STEP_LOG_LINE@python.inline@ print e@@@", 181 "@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@", 182 "@@@STEP_LOG_LINE@python.inline@ raise@@@", 183 "@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@", 184 "@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@", 185 "@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@", 186 "@@@STEP_LOG_END@python.inline@@@" 187 ] 188 }, 189 { 190 "cmd": [ 191 "python", 192 "-u", 193 "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n" 194 ], 195 "name": "get swarming bot id", 196 "~followup_annotations": [ 197 "@@@STEP_LOG_LINE@python.inline@import os@@@", 198 "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@", 199 "@@@STEP_LOG_END@python.inline@@@" 200 ] 201 }, 202 { 203 "cmd": [ 204 "python", 205 "-u", 206 "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n" 207 ], 208 "name": "get swarming task id", 209 "~followup_annotations": [ 210 "@@@STEP_LOG_LINE@python.inline@import os@@@", 211 "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@", 212 "@@@STEP_LOG_END@python.inline@@@" 213 ] 214 }, 215 { 216 "cmd": [ 217 "powershell", 218 "-ExecutionPolicy", 219 "Unrestricted", 220 "-File", 221 "RECIPE_MODULE[skia::flavor]\\resources\\win_run_and_check_log.ps1", 222 "[START_DIR]\\build\\dm", 223 "--resourcePath", 224 "[START_DIR]\\skia\\resources", 225 "--skps", 226 "[START_DIR]\\skp", 227 "--images", 228 "[START_DIR]\\skimage\\dm", 229 "--colorImages", 230 "[START_DIR]\\skimage\\colorspace", 231 "--nameByHash", 232 "--properties", 233 "gitHash", 234 "abc123", 235 "builder", 236 "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE", 237 "buildbucket_build_id", 238 "123454321", 239 "task_id", 240 "task_12345", 241 "swarming_bot_id", 242 "skia-bot-123", 243 "swarming_task_id", 244 "123456", 245 "--svgs", 246 "[START_DIR]\\svg", 247 "--key", 248 "arch", 249 "x86_64", 250 "compiler", 251 "Clang", 252 "configuration", 253 "Release", 254 "cpu_or_gpu", 255 "GPU", 256 "cpu_or_gpu_value", 257 "IntelIris6100", 258 "extra_config", 259 "ANGLE", 260 "model", 261 "NUC5i7RYH", 262 "os", 263 "Win10", 264 "style", 265 "default", 266 "--uninterestingHashesFile", 267 "[START_DIR]\\tmp\\uninteresting_hashes.txt", 268 "--writePath", 269 "[START_DIR]\\[SWARM_OUT_DIR]", 270 "--dont_write", 271 "pdf", 272 "--randomProcessorTest", 273 "--nocpu", 274 "--config", 275 "angle_d3d11_es2", 276 "angle_d3d9_es2", 277 "angle_gl_es2", 278 "angle_d3d11_es3", 279 "--src", 280 "tests", 281 "gm", 282 "image", 283 "colorImage", 284 "svg", 285 "--blacklist", 286 "_", 287 "test", 288 "_", 289 "ProcessorCloneTest", 290 "_", 291 "svg", 292 "_", 293 "svgparse_", 294 "_", 295 "image", 296 "gen_platf", 297 "pal8os2v2.bmp", 298 "_", 299 "image", 300 "gen_platf", 301 "pal8os2v2-16.bmp", 302 "_", 303 "image", 304 "gen_platf", 305 "rgba32abf.bmp", 306 "_", 307 "image", 308 "gen_platf", 309 "rgb24prof.bmp", 310 "_", 311 "image", 312 "gen_platf", 313 "rgb24lprof.bmp", 314 "_", 315 "image", 316 "gen_platf", 317 "8bpp-pixeldata-cropped.bmp", 318 "_", 319 "image", 320 "gen_platf", 321 "4bpp-pixeldata-cropped.bmp", 322 "_", 323 "image", 324 "gen_platf", 325 "32bpp-pixeldata-cropped.bmp", 326 "_", 327 "image", 328 "gen_platf", 329 "24bpp-pixeldata-cropped.bmp", 330 "_", 331 "image", 332 "gen_platf", 333 "testimgari.jpg", 334 "_", 335 "image", 336 "gen_platf", 337 "rle8-height-negative.bmp", 338 "_", 339 "image", 340 "gen_platf", 341 "rle4-height-negative.bmp", 342 "_", 343 "image", 344 "gen_platf", 345 "error", 346 "_", 347 "image", 348 "_", 349 "interlaced1.png", 350 "_", 351 "image", 352 "_", 353 "interlaced2.png", 354 "_", 355 "image", 356 "_", 357 "interlaced3.png", 358 "_", 359 "image", 360 "_", 361 ".arw", 362 "_", 363 "image", 364 "_", 365 ".cr2", 366 "_", 367 "image", 368 "_", 369 ".dng", 370 "_", 371 "image", 372 "_", 373 ".nef", 374 "_", 375 "image", 376 "_", 377 ".nrw", 378 "_", 379 "image", 380 "_", 381 ".orf", 382 "_", 383 "image", 384 "_", 385 ".raf", 386 "_", 387 "image", 388 "_", 389 ".rw2", 390 "_", 391 "image", 392 "_", 393 ".pef", 394 "_", 395 "image", 396 "_", 397 ".srw", 398 "_", 399 "image", 400 "_", 401 ".ARW", 402 "_", 403 "image", 404 "_", 405 ".CR2", 406 "_", 407 "image", 408 "_", 409 ".DNG", 410 "_", 411 "image", 412 "_", 413 ".NEF", 414 "_", 415 "image", 416 "_", 417 ".NRW", 418 "_", 419 "image", 420 "_", 421 ".ORF", 422 "_", 423 "image", 424 "_", 425 ".RAF", 426 "_", 427 "image", 428 "_", 429 ".RW2", 430 "_", 431 "image", 432 "_", 433 ".PEF", 434 "_", 435 "image", 436 "_", 437 ".SRW", 438 "angle_d3d9_es2", 439 "gm", 440 "_", 441 "lighting", 442 "--match", 443 "~BlurMaskBiggerThanDest", 444 "~^ProcessorOptimizationValidationTest$", 445 "--nonativeFonts", 446 "--verbose" 447 ], 448 "env": { 449 "CHROME_HEADLESS": "1", 450 "PATH": "<PATH>;RECIPE_REPO[depot_tools]" 451 }, 452 "name": "dm" 453 }, 454 { 455 "name": "$result" 456 } 457]