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