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 "[START_DIR]/build/dm", 218 "--resourcePath", 219 "[START_DIR]/skia/resources", 220 "--skps", 221 "[START_DIR]/skp", 222 "--images", 223 "[START_DIR]/skimage/dm", 224 "--colorImages", 225 "[START_DIR]/skimage/colorspace", 226 "--nameByHash", 227 "--properties", 228 "gitHash", 229 "abc123", 230 "builder", 231 "Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal", 232 "buildbucket_build_id", 233 "123454321", 234 "task_id", 235 "task_12345", 236 "swarming_bot_id", 237 "skia-bot-123", 238 "swarming_task_id", 239 "123456", 240 "--svgs", 241 "[START_DIR]/svg", 242 "--key", 243 "arch", 244 "x86_64", 245 "compiler", 246 "Clang", 247 "configuration", 248 "Debug", 249 "cpu_or_gpu", 250 "GPU", 251 "cpu_or_gpu_value", 252 "RadeonHD8870M", 253 "extra_config", 254 "Metal", 255 "model", 256 "MacBookPro11.5", 257 "os", 258 "Mac10.13", 259 "style", 260 "default", 261 "--uninterestingHashesFile", 262 "[START_DIR]/tmp/uninteresting_hashes.txt", 263 "--writePath", 264 "[START_DIR]/[SWARM_OUT_DIR]", 265 "--dont_write", 266 "pdf", 267 "--randomProcessorTest", 268 "--nocpu", 269 "--config", 270 "mtl", 271 "mtlmsaa8", 272 "--src", 273 "tests", 274 "gm", 275 "image", 276 "colorImage", 277 "svg", 278 "--blacklist", 279 "_", 280 "svg", 281 "_", 282 "svgparse_", 283 "_", 284 "image", 285 "gen_platf", 286 "rgba32abf.bmp", 287 "_", 288 "image", 289 "gen_platf", 290 "rgb24prof.bmp", 291 "_", 292 "image", 293 "gen_platf", 294 "rgb24lprof.bmp", 295 "_", 296 "image", 297 "gen_platf", 298 "8bpp-pixeldata-cropped.bmp", 299 "_", 300 "image", 301 "gen_platf", 302 "4bpp-pixeldata-cropped.bmp", 303 "_", 304 "image", 305 "gen_platf", 306 "32bpp-pixeldata-cropped.bmp", 307 "_", 308 "image", 309 "gen_platf", 310 "24bpp-pixeldata-cropped.bmp", 311 "_", 312 "image", 313 "gen_platf", 314 "frame_larger_than_image.gif", 315 "_", 316 "image", 317 "gen_platf", 318 "inc0.png", 319 "_", 320 "image", 321 "gen_platf", 322 "inc1.png", 323 "_", 324 "image", 325 "gen_platf", 326 "inc2.png", 327 "_", 328 "image", 329 "gen_platf", 330 "inc3.png", 331 "_", 332 "image", 333 "gen_platf", 334 "inc4.png", 335 "_", 336 "image", 337 "gen_platf", 338 "inc5.png", 339 "_", 340 "image", 341 "gen_platf", 342 "inc6.png", 343 "_", 344 "image", 345 "gen_platf", 346 "inc7.png", 347 "_", 348 "image", 349 "gen_platf", 350 "inc8.png", 351 "_", 352 "image", 353 "gen_platf", 354 "inc9.png", 355 "_", 356 "image", 357 "gen_platf", 358 "inc10.png", 359 "_", 360 "image", 361 "gen_platf", 362 "inc11.png", 363 "_", 364 "image", 365 "gen_platf", 366 "inc12.png", 367 "_", 368 "image", 369 "gen_platf", 370 "inc13.png", 371 "_", 372 "image", 373 "gen_platf", 374 "inc14.png", 375 "_", 376 "image", 377 "gen_platf", 378 "incInterlaced.png", 379 "_", 380 "image", 381 "gen_platf", 382 "incInterlaced.gif", 383 "_", 384 "image", 385 "gen_platf", 386 "inc1.gif", 387 "_", 388 "image", 389 "gen_platf", 390 "inc0.gif", 391 "_", 392 "image", 393 "gen_platf", 394 "butterfly.gif", 395 "_", 396 "image", 397 "gen_platf", 398 "testimgari.jpg", 399 "_", 400 "image", 401 "gen_platf", 402 "rle8-height-negative.bmp", 403 "_", 404 "image", 405 "gen_platf", 406 "rle4-height-negative.bmp", 407 "_", 408 "image", 409 "gen_platf", 410 "error", 411 "_", 412 "image", 413 "_", 414 "interlaced1.png", 415 "_", 416 "image", 417 "_", 418 "interlaced2.png", 419 "_", 420 "image", 421 "_", 422 "interlaced3.png", 423 "_", 424 "image", 425 "_", 426 ".arw", 427 "_", 428 "image", 429 "_", 430 ".cr2", 431 "_", 432 "image", 433 "_", 434 ".dng", 435 "_", 436 "image", 437 "_", 438 ".nef", 439 "_", 440 "image", 441 "_", 442 ".nrw", 443 "_", 444 "image", 445 "_", 446 ".orf", 447 "_", 448 "image", 449 "_", 450 ".raf", 451 "_", 452 "image", 453 "_", 454 ".rw2", 455 "_", 456 "image", 457 "_", 458 ".pef", 459 "_", 460 "image", 461 "_", 462 ".srw", 463 "_", 464 "image", 465 "_", 466 ".ARW", 467 "_", 468 "image", 469 "_", 470 ".CR2", 471 "_", 472 "image", 473 "_", 474 ".DNG", 475 "_", 476 "image", 477 "_", 478 ".NEF", 479 "_", 480 "image", 481 "_", 482 ".NRW", 483 "_", 484 "image", 485 "_", 486 ".ORF", 487 "_", 488 "image", 489 "_", 490 ".RAF", 491 "_", 492 "image", 493 "_", 494 ".RW2", 495 "_", 496 "image", 497 "_", 498 ".PEF", 499 "_", 500 "image", 501 "_", 502 ".SRW", 503 "--match", 504 "~WritePixelsNonTextureMSAA_Gpu", 505 "--nonativeFonts", 506 "--verbose" 507 ], 508 "env": { 509 "CHROME_HEADLESS": "1", 510 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 511 }, 512 "name": "dm" 513 }, 514 { 515 "name": "$result" 516 } 517]