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