1[ 2 { 3 "cmd": [ 4 "adb", 5 "shell", 6 "mkdir", 7 "-p", 8 "/sdcard/revenge_of_the_skiabot/resources" 9 ], 10 "cwd": "[START_DIR]/skia", 11 "env": { 12 "BUILDTYPE": "Debug", 13 "CHROME_HEADLESS": "1", 14 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 15 "SKIA_OUT": "[START_DIR]/out" 16 }, 17 "infra_step": true, 18 "name": "mkdir /sdcard/revenge_of_the_skiabot/resources" 19 }, 20 { 21 "cmd": [ 22 "python", 23 "-u", 24 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n", 25 "[START_DIR]/skia/resources", 26 "/sdcard/revenge_of_the_skiabot/resources" 27 ], 28 "env": { 29 "BUILDTYPE": "Debug", 30 "CHROME_HEADLESS": "1", 31 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 32 "SKIA_OUT": "[START_DIR]/out" 33 }, 34 "infra_step": true, 35 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources", 36 "~followup_annotations": [ 37 "@@@STEP_LOG_LINE@python.inline@@@@", 38 "@@@STEP_LOG_LINE@python.inline@import os@@@", 39 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 40 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 41 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@", 42 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", 43 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@", 44 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@", 45 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@", 46 "@@@STEP_LOG_LINE@python.inline@ continue@@@", 47 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@", 48 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@", 49 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", 50 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@", 51 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@", 52 "@@@STEP_LOG_END@python.inline@@@" 53 ] 54 }, 55 { 56 "cmd": [ 57 "python", 58 "-u", 59 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 60 "[START_DIR]/skia/infra/bots/assets/skp/VERSION", 61 "/path/to/tmp/" 62 ], 63 "infra_step": true, 64 "name": "Get downloaded SKP VERSION" 65 }, 66 { 67 "cmd": [ 68 "python", 69 "-u", 70 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 71 "42", 72 "[START_DIR]/tmp/SKP_VERSION" 73 ], 74 "infra_step": true, 75 "name": "write SKP_VERSION" 76 }, 77 { 78 "cmd": [ 79 "adb", 80 "shell", 81 "cat", 82 "/sdcard/revenge_of_the_skiabot/SKP_VERSION" 83 ], 84 "cwd": "[START_DIR]/skia", 85 "env": { 86 "BUILDTYPE": "Debug", 87 "CHROME_HEADLESS": "1", 88 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 89 "SKIA_OUT": "[START_DIR]/out" 90 }, 91 "infra_step": true, 92 "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION", 93 "stdout": "/path/to/tmp/" 94 }, 95 { 96 "cmd": [ 97 "adb", 98 "shell", 99 "rm", 100 "-f", 101 "/sdcard/revenge_of_the_skiabot/SKP_VERSION" 102 ], 103 "cwd": "[START_DIR]/skia", 104 "env": { 105 "BUILDTYPE": "Debug", 106 "CHROME_HEADLESS": "1", 107 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 108 "SKIA_OUT": "[START_DIR]/out" 109 }, 110 "infra_step": true, 111 "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION" 112 }, 113 { 114 "cmd": [ 115 "adb", 116 "shell", 117 "rm", 118 "-rf", 119 "/sdcard/revenge_of_the_skiabot/skps" 120 ], 121 "cwd": "[START_DIR]/skia", 122 "env": { 123 "BUILDTYPE": "Debug", 124 "CHROME_HEADLESS": "1", 125 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 126 "SKIA_OUT": "[START_DIR]/out" 127 }, 128 "infra_step": true, 129 "name": "rm /sdcard/revenge_of_the_skiabot/skps" 130 }, 131 { 132 "cmd": [ 133 "adb", 134 "shell", 135 "mkdir", 136 "-p", 137 "/sdcard/revenge_of_the_skiabot/skps" 138 ], 139 "cwd": "[START_DIR]/skia", 140 "env": { 141 "BUILDTYPE": "Debug", 142 "CHROME_HEADLESS": "1", 143 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 144 "SKIA_OUT": "[START_DIR]/out" 145 }, 146 "infra_step": true, 147 "name": "mkdir /sdcard/revenge_of_the_skiabot/skps" 148 }, 149 { 150 "cmd": [ 151 "python", 152 "-u", 153 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n", 154 "[START_DIR]/skp", 155 "/sdcard/revenge_of_the_skiabot/skps" 156 ], 157 "env": { 158 "BUILDTYPE": "Debug", 159 "CHROME_HEADLESS": "1", 160 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 161 "SKIA_OUT": "[START_DIR]/out" 162 }, 163 "infra_step": true, 164 "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps", 165 "~followup_annotations": [ 166 "@@@STEP_LOG_LINE@python.inline@@@@", 167 "@@@STEP_LOG_LINE@python.inline@import os@@@", 168 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 169 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 170 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@", 171 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", 172 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@", 173 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@", 174 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@", 175 "@@@STEP_LOG_LINE@python.inline@ continue@@@", 176 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@", 177 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@", 178 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", 179 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@", 180 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@", 181 "@@@STEP_LOG_END@python.inline@@@" 182 ] 183 }, 184 { 185 "cmd": [ 186 "adb", 187 "push", 188 "[START_DIR]/tmp/SKP_VERSION", 189 "/sdcard/revenge_of_the_skiabot/SKP_VERSION" 190 ], 191 "cwd": "[START_DIR]/skia", 192 "env": { 193 "BUILDTYPE": "Debug", 194 "CHROME_HEADLESS": "1", 195 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 196 "SKIA_OUT": "[START_DIR]/out" 197 }, 198 "infra_step": true, 199 "name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION" 200 }, 201 { 202 "cmd": [ 203 "python", 204 "-u", 205 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 206 "[START_DIR]/skia/infra/bots/assets/skimage/VERSION", 207 "/path/to/tmp/" 208 ], 209 "infra_step": true, 210 "name": "Get downloaded skimage VERSION" 211 }, 212 { 213 "cmd": [ 214 "python", 215 "-u", 216 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 217 "42", 218 "[START_DIR]/tmp/SK_IMAGE_VERSION" 219 ], 220 "infra_step": true, 221 "name": "write SK_IMAGE_VERSION" 222 }, 223 { 224 "cmd": [ 225 "adb", 226 "shell", 227 "cat", 228 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 229 ], 230 "cwd": "[START_DIR]/skia", 231 "env": { 232 "BUILDTYPE": "Debug", 233 "CHROME_HEADLESS": "1", 234 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 235 "SKIA_OUT": "[START_DIR]/out" 236 }, 237 "infra_step": true, 238 "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION", 239 "stdout": "/path/to/tmp/" 240 }, 241 { 242 "cmd": [ 243 "adb", 244 "shell", 245 "rm", 246 "-f", 247 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 248 ], 249 "cwd": "[START_DIR]/skia", 250 "env": { 251 "BUILDTYPE": "Debug", 252 "CHROME_HEADLESS": "1", 253 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 254 "SKIA_OUT": "[START_DIR]/out" 255 }, 256 "infra_step": true, 257 "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 258 }, 259 { 260 "cmd": [ 261 "adb", 262 "shell", 263 "rm", 264 "-rf", 265 "/sdcard/revenge_of_the_skiabot/images" 266 ], 267 "cwd": "[START_DIR]/skia", 268 "env": { 269 "BUILDTYPE": "Debug", 270 "CHROME_HEADLESS": "1", 271 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 272 "SKIA_OUT": "[START_DIR]/out" 273 }, 274 "infra_step": true, 275 "name": "rm /sdcard/revenge_of_the_skiabot/images" 276 }, 277 { 278 "cmd": [ 279 "adb", 280 "shell", 281 "mkdir", 282 "-p", 283 "/sdcard/revenge_of_the_skiabot/images" 284 ], 285 "cwd": "[START_DIR]/skia", 286 "env": { 287 "BUILDTYPE": "Debug", 288 "CHROME_HEADLESS": "1", 289 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 290 "SKIA_OUT": "[START_DIR]/out" 291 }, 292 "infra_step": true, 293 "name": "mkdir /sdcard/revenge_of_the_skiabot/images" 294 }, 295 { 296 "cmd": [ 297 "python", 298 "-u", 299 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n", 300 "[START_DIR]/skimage", 301 "/sdcard/revenge_of_the_skiabot/images" 302 ], 303 "env": { 304 "BUILDTYPE": "Debug", 305 "CHROME_HEADLESS": "1", 306 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 307 "SKIA_OUT": "[START_DIR]/out" 308 }, 309 "infra_step": true, 310 "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images", 311 "~followup_annotations": [ 312 "@@@STEP_LOG_LINE@python.inline@@@@", 313 "@@@STEP_LOG_LINE@python.inline@import os@@@", 314 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 315 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 316 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@", 317 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", 318 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@", 319 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@", 320 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@", 321 "@@@STEP_LOG_LINE@python.inline@ continue@@@", 322 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@", 323 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@", 324 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", 325 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@", 326 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@", 327 "@@@STEP_LOG_END@python.inline@@@" 328 ] 329 }, 330 { 331 "cmd": [ 332 "adb", 333 "push", 334 "[START_DIR]/tmp/SK_IMAGE_VERSION", 335 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 336 ], 337 "cwd": "[START_DIR]/skia", 338 "env": { 339 "BUILDTYPE": "Debug", 340 "CHROME_HEADLESS": "1", 341 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 342 "SKIA_OUT": "[START_DIR]/out" 343 }, 344 "infra_step": true, 345 "name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 346 }, 347 { 348 "cmd": [ 349 "python", 350 "-u", 351 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 352 "[START_DIR]/skia/infra/bots/assets/svg/VERSION", 353 "/path/to/tmp/" 354 ], 355 "infra_step": true, 356 "name": "Get downloaded SVG VERSION" 357 }, 358 { 359 "cmd": [ 360 "python", 361 "-u", 362 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 363 "42", 364 "[START_DIR]/tmp/SVG_VERSION" 365 ], 366 "infra_step": true, 367 "name": "write SVG_VERSION" 368 }, 369 { 370 "cmd": [ 371 "adb", 372 "shell", 373 "cat", 374 "/sdcard/revenge_of_the_skiabot/SVG_VERSION" 375 ], 376 "cwd": "[START_DIR]/skia", 377 "env": { 378 "BUILDTYPE": "Debug", 379 "CHROME_HEADLESS": "1", 380 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 381 "SKIA_OUT": "[START_DIR]/out" 382 }, 383 "infra_step": true, 384 "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION", 385 "stdout": "/path/to/tmp/" 386 }, 387 { 388 "cmd": [ 389 "adb", 390 "shell", 391 "rm", 392 "-f", 393 "/sdcard/revenge_of_the_skiabot/SVG_VERSION" 394 ], 395 "cwd": "[START_DIR]/skia", 396 "env": { 397 "BUILDTYPE": "Debug", 398 "CHROME_HEADLESS": "1", 399 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 400 "SKIA_OUT": "[START_DIR]/out" 401 }, 402 "infra_step": true, 403 "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION" 404 }, 405 { 406 "cmd": [ 407 "adb", 408 "shell", 409 "rm", 410 "-rf", 411 "/sdcard/revenge_of_the_skiabot/svgs" 412 ], 413 "cwd": "[START_DIR]/skia", 414 "env": { 415 "BUILDTYPE": "Debug", 416 "CHROME_HEADLESS": "1", 417 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 418 "SKIA_OUT": "[START_DIR]/out" 419 }, 420 "infra_step": true, 421 "name": "rm /sdcard/revenge_of_the_skiabot/svgs" 422 }, 423 { 424 "cmd": [ 425 "adb", 426 "shell", 427 "mkdir", 428 "-p", 429 "/sdcard/revenge_of_the_skiabot/svgs" 430 ], 431 "cwd": "[START_DIR]/skia", 432 "env": { 433 "BUILDTYPE": "Debug", 434 "CHROME_HEADLESS": "1", 435 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 436 "SKIA_OUT": "[START_DIR]/out" 437 }, 438 "infra_step": true, 439 "name": "mkdir /sdcard/revenge_of_the_skiabot/svgs" 440 }, 441 { 442 "cmd": [ 443 "python", 444 "-u", 445 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n", 446 "[START_DIR]/svg", 447 "/sdcard/revenge_of_the_skiabot/svgs" 448 ], 449 "env": { 450 "BUILDTYPE": "Debug", 451 "CHROME_HEADLESS": "1", 452 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 453 "SKIA_OUT": "[START_DIR]/out" 454 }, 455 "infra_step": true, 456 "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs", 457 "~followup_annotations": [ 458 "@@@STEP_LOG_LINE@python.inline@@@@", 459 "@@@STEP_LOG_LINE@python.inline@import os@@@", 460 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 461 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 462 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@", 463 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", 464 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@", 465 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@", 466 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@", 467 "@@@STEP_LOG_LINE@python.inline@ continue@@@", 468 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@", 469 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@", 470 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", 471 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@", 472 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@", 473 "@@@STEP_LOG_END@python.inline@@@" 474 ] 475 }, 476 { 477 "cmd": [ 478 "adb", 479 "push", 480 "[START_DIR]/tmp/SVG_VERSION", 481 "/sdcard/revenge_of_the_skiabot/SVG_VERSION" 482 ], 483 "cwd": "[START_DIR]/skia", 484 "env": { 485 "BUILDTYPE": "Debug", 486 "CHROME_HEADLESS": "1", 487 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 488 "SKIA_OUT": "[START_DIR]/out" 489 }, 490 "infra_step": true, 491 "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION" 492 }, 493 { 494 "cmd": [ 495 "python", 496 "-u", 497 "RECIPE_MODULE[build::file]/resources/fileutil.py", 498 "rmtree", 499 "[CUSTOM_[SWARM_OUT_DIR]]/dm" 500 ], 501 "env": { 502 "PYTHONPATH": "[START_DIR]/skia/infra/bots/.recipe_deps/build/scripts" 503 }, 504 "infra_step": true, 505 "name": "rmtree dm" 506 }, 507 { 508 "cmd": [ 509 "python", 510 "-u", 511 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", 512 "[CUSTOM_[SWARM_OUT_DIR]]/dm", 513 "511" 514 ], 515 "infra_step": true, 516 "name": "makedirs dm", 517 "~followup_annotations": [ 518 "@@@STEP_LOG_LINE@python.inline@@@@", 519 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", 520 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", 521 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", 522 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", 523 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", 524 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", 525 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", 526 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", 527 "@@@STEP_LOG_END@python.inline@@@" 528 ] 529 }, 530 { 531 "cmd": [ 532 "adb", 533 "shell", 534 "rm", 535 "-rf", 536 "/sdcard/revenge_of_the_skiabot/dm_out" 537 ], 538 "cwd": "[START_DIR]/skia", 539 "env": { 540 "BUILDTYPE": "Debug", 541 "CHROME_HEADLESS": "1", 542 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 543 "SKIA_OUT": "[START_DIR]/out" 544 }, 545 "infra_step": true, 546 "name": "rm /sdcard/revenge_of_the_skiabot/dm_out" 547 }, 548 { 549 "cmd": [ 550 "adb", 551 "shell", 552 "mkdir", 553 "-p", 554 "/sdcard/revenge_of_the_skiabot/dm_out" 555 ], 556 "cwd": "[START_DIR]/skia", 557 "env": { 558 "BUILDTYPE": "Debug", 559 "CHROME_HEADLESS": "1", 560 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 561 "SKIA_OUT": "[START_DIR]/out" 562 }, 563 "infra_step": true, 564 "name": "mkdir /sdcard/revenge_of_the_skiabot/dm_out" 565 }, 566 { 567 "cmd": [ 568 "python", 569 "-u", 570 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", 571 "[START_DIR]/tmp", 572 "511" 573 ], 574 "infra_step": true, 575 "name": "makedirs tmp_dir", 576 "~followup_annotations": [ 577 "@@@STEP_LOG_LINE@python.inline@@@@", 578 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", 579 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", 580 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", 581 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", 582 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", 583 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", 584 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", 585 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", 586 "@@@STEP_LOG_END@python.inline@@@" 587 ] 588 }, 589 { 590 "cmd": [ 591 "python", 592 "-u", 593 "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = 'https://gold.skia.org/_/hashes'\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", 594 "[START_DIR]/tmp/uninteresting_hashes.txt" 595 ], 596 "env": { 597 "BUILDTYPE": "Debug", 598 "CHROME_HEADLESS": "1", 599 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 600 "SKIA_OUT": "[START_DIR]/out" 601 }, 602 "infra_step": true, 603 "name": "get uninteresting hashes", 604 "~followup_annotations": [ 605 "step returned non-zero exit code: 1", 606 "@@@STEP_LOG_LINE@python.inline@@@@", 607 "@@@STEP_LOG_LINE@python.inline@import contextlib@@@", 608 "@@@STEP_LOG_LINE@python.inline@import math@@@", 609 "@@@STEP_LOG_LINE@python.inline@import socket@@@", 610 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 611 "@@@STEP_LOG_LINE@python.inline@import time@@@", 612 "@@@STEP_LOG_LINE@python.inline@import urllib2@@@", 613 "@@@STEP_LOG_LINE@python.inline@@@@", 614 "@@@STEP_LOG_LINE@python.inline@HASHES_URL = 'https://gold.skia.org/_/hashes'@@@", 615 "@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@", 616 "@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@", 617 "@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@", 618 "@@@STEP_LOG_LINE@python.inline@@@@", 619 "@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@", 620 "@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@", 621 "@@@STEP_LOG_LINE@python.inline@ try:@@@", 622 "@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@", 623 "@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@", 624 "@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@", 625 "@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[1], 'w') as f:@@@", 626 "@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@", 627 "@@@STEP_LOG_LINE@python.inline@ break@@@", 628 "@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@", 629 "@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@", 630 "@@@STEP_LOG_LINE@python.inline@ print e@@@", 631 "@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@", 632 "@@@STEP_LOG_LINE@python.inline@ raise@@@", 633 "@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@", 634 "@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@", 635 "@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@", 636 "@@@STEP_LOG_END@python.inline@@@", 637 "@@@STEP_EXCEPTION@@@" 638 ] 639 }, 640 { 641 "cmd": [ 642 "adb", 643 "push", 644 "[START_DIR]/tmp/uninteresting_hashes.txt", 645 "/sdcard/revenge_of_the_skiabot/uninteresting_hashes.txt" 646 ], 647 "cwd": "[START_DIR]/skia", 648 "env": { 649 "BUILDTYPE": "Debug", 650 "CHROME_HEADLESS": "1", 651 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 652 "SKIA_OUT": "[START_DIR]/out" 653 }, 654 "infra_step": true, 655 "name": "push [START_DIR]/tmp/uninteresting_hashes.txt /sdcard/revenge_of_the_skiabot/uninteresting_hashes.txt" 656 }, 657 { 658 "cmd": [ 659 "adb", 660 "push", 661 "[START_DIR]/out/Debug/dm", 662 "/data/local/tmp/" 663 ], 664 "cwd": "[START_DIR]/skia", 665 "env": { 666 "BUILDTYPE": "Debug", 667 "CHROME_HEADLESS": "1", 668 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 669 "SKIA_OUT": "[START_DIR]/out" 670 }, 671 "infra_step": true, 672 "name": "push dm" 673 }, 674 { 675 "cmd": [ 676 "python", 677 "-u", 678 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 679 "set -x; /data/local/tmp/dm --undefok --resourcePath /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/dm --colorImages /sdcard/revenge_of_the_skiabot/images/colorspace --nameByHash --properties gitHash abc123 master client.skia builder Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-GN_Android build_number 6 --svgs /sdcard/revenge_of_the_skiabot/svgs --key arch arm compiler Clang configuration Debug cpu_or_gpu GPU cpu_or_gpu_value Tegra3 extra_config GN_Android model Nexus7 os Android --uninterestingHashesFile /sdcard/revenge_of_the_skiabot/uninteresting_hashes.txt --writePath /sdcard/revenge_of_the_skiabot/dm_out --nocpu --config 8888 srgb gles glesdft glessrgb serialize-8888 tiles_rt-8888 pic-8888 --src tests gm image colorImage svg --blacklist glessrgb image _ _ 8888 image _ _ _ test _ GrShape serialize-8888 gm _ bleed_image serialize-8888 gm _ c_gms serialize-8888 gm _ colortype serialize-8888 gm _ colortype_xfermodes serialize-8888 gm _ drawfilter serialize-8888 gm _ fontmgr_bounds_0.75_0 serialize-8888 gm _ fontmgr_bounds_1_-0.25 serialize-8888 gm _ fontmgr_bounds serialize-8888 gm _ fontmgr_match serialize-8888 gm _ fontmgr_iter serialize-8888 gm _ imagemasksubset serialize-8888 gm _ bitmapfilters serialize-8888 gm _ bitmapshaders serialize-8888 gm _ bleed serialize-8888 gm _ bleed_alpha_bmp serialize-8888 gm _ bleed_alpha_bmp_shader serialize-8888 gm _ convex_poly_clip serialize-8888 gm _ extractalpha serialize-8888 gm _ filterbitmap_checkerboard_32_32_g8 serialize-8888 gm _ filterbitmap_image_mandrill_64 serialize-8888 gm _ shadows serialize-8888 gm _ simpleaaclip_aaclip serialize-8888 gm _ composeshader_bitmap serialize-8888 gm _ scaled_tilemodes_npot serialize-8888 gm _ scaled_tilemodes serialize-8888 gm _ typefacerendering_pfaMac serialize-8888 gm _ parsedpaths serialize-8888 gm _ ImageGeneratorExternal_rect serialize-8888 gm _ ImageGeneratorExternal_shader serialize-8888 gm _ shadow_utils serialize-8888 gm _ bleed_alpha_image serialize-8888 gm _ bleed_alpha_image_shader serialize-8888 gm _ verylargebitmap serialize-8888 gm _ verylarge_picture_image pic-8888 gm _ drawfilter pic-8888 gm _ image-cacherator-from-picture serialize-8888 gm _ image-cacherator-from-picture pic-8888 gm _ image-cacherator-from-raster serialize-8888 gm _ image-cacherator-from-raster pic-8888 gm _ image-cacherator-from-ctable serialize-8888 gm _ image-cacherator-from-ctable pic-8888 gm _ gamut serialize-8888 gm _ gamut pic-8888 gm _ complexclip4_bw serialize-8888 gm _ complexclip4_bw pic-8888 gm _ complexclip4_aa serialize-8888 gm _ complexclip4_aa tiles_rt-8888 gm _ complexclip4_bw tiles_rt-8888 gm _ complexclip4_aa _ image _ interlaced1.png _ image _ interlaced2.png _ image _ interlaced3.png _ image _ .arw _ image _ .cr2 _ image _ .dng _ image _ .nef _ image _ .nrw _ image _ .orf _ image _ .raf _ image _ .rw2 _ image _ .pef _ image _ .srw _ image _ .ARW _ image _ .CR2 _ image _ .DNG _ image _ .NEF _ image _ .NRW _ image _ .ORF _ image _ .RAF _ image _ .RW2 _ image _ .PEF _ image _ .SRW; echo $? >/data/local/tmp/rc", 680 "[START_DIR]/tmp/dm.sh" 681 ], 682 "env": { 683 "BUILDTYPE": "Debug", 684 "CHROME_HEADLESS": "1", 685 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 686 "SKIA_OUT": "[START_DIR]/out" 687 }, 688 "infra_step": true, 689 "name": "write dm.sh" 690 }, 691 { 692 "cmd": [ 693 "adb", 694 "push", 695 "[START_DIR]/tmp/dm.sh", 696 "/data/local/tmp/" 697 ], 698 "cwd": "[START_DIR]/skia", 699 "env": { 700 "BUILDTYPE": "Debug", 701 "CHROME_HEADLESS": "1", 702 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 703 "SKIA_OUT": "[START_DIR]/out" 704 }, 705 "infra_step": true, 706 "name": "push dm.sh" 707 }, 708 { 709 "cmd": [ 710 "adb", 711 "logcat", 712 "-c" 713 ], 714 "cwd": "[START_DIR]/skia", 715 "env": { 716 "BUILDTYPE": "Debug", 717 "CHROME_HEADLESS": "1", 718 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 719 "SKIA_OUT": "[START_DIR]/out" 720 }, 721 "infra_step": true, 722 "name": "clear log" 723 }, 724 { 725 "cmd": [ 726 "python", 727 "-u", 728 "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n", 729 "/data/local/tmp/", 730 "dm.sh" 731 ], 732 "env": { 733 "BUILDTYPE": "Debug", 734 "CHROME_HEADLESS": "1", 735 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 736 "SKIA_OUT": "[START_DIR]/out" 737 }, 738 "name": "dm", 739 "~followup_annotations": [ 740 "@@@STEP_LOG_LINE@python.inline@@@@", 741 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 742 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 743 "@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@", 744 "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", 745 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])@@@", 746 "@@@STEP_LOG_LINE@python.inline@try:@@@", 747 "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',@@@", 748 "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", 749 "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", 750 "@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@", 751 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", 752 "@@@STEP_LOG_END@python.inline@@@" 753 ] 754 }, 755 { 756 "cmd": [ 757 "adb", 758 "pull", 759 "/sdcard/revenge_of_the_skiabot/dm_out", 760 "[CUSTOM_[SWARM_OUT_DIR]]/dm" 761 ], 762 "cwd": "[START_DIR]/skia", 763 "env": { 764 "BUILDTYPE": "Debug", 765 "CHROME_HEADLESS": "1", 766 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 767 "SKIA_OUT": "[START_DIR]/out" 768 }, 769 "infra_step": true, 770 "name": "pull /sdcard/revenge_of_the_skiabot/dm_out [CUSTOM_[SWARM_OUT_DIR]]/dm" 771 }, 772 { 773 "cmd": [ 774 "python", 775 "-u", 776 "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n", 777 "[START_DIR]/out/Debug" 778 ], 779 "env": { 780 "BUILDTYPE": "Debug", 781 "CHROME_HEADLESS": "1", 782 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 783 "SKIA_OUT": "[START_DIR]/out" 784 }, 785 "infra_step": true, 786 "name": "dump log", 787 "~followup_annotations": [ 788 "@@@STEP_LOG_LINE@python.inline@@@@", 789 "@@@STEP_LOG_LINE@python.inline@import os@@@", 790 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 791 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 792 "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", 793 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@", 794 "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", 795 "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", 796 "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", 797 "@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@", 798 "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", 799 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", 800 "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", 801 "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", 802 "@@@STEP_LOG_LINE@python.inline@ print line@@@", 803 "@@@STEP_LOG_END@python.inline@@@" 804 ] 805 }, 806 { 807 "cmd": [ 808 "adb", 809 "kill-server" 810 ], 811 "cwd": "[START_DIR]/skia", 812 "env": { 813 "BUILDTYPE": "Debug", 814 "CHROME_HEADLESS": "1", 815 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", 816 "SKIA_OUT": "[START_DIR]/out" 817 }, 818 "infra_step": true, 819 "name": "kill adb server" 820 }, 821 { 822 "name": "$result", 823 "recipe_result": null, 824 "status_code": 0 825 } 826]