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 "python", 20 "-u", 21 "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n" 22 ], 23 "name": "get swarming bot id", 24 "~followup_annotations": [ 25 "@@@STEP_LOG_LINE@python.inline@import os@@@", 26 "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@", 27 "@@@STEP_LOG_END@python.inline@@@" 28 ] 29 }, 30 { 31 "cmd": [ 32 "/opt/infra-android/tools/adb", 33 "shell", 34 "mkdir", 35 "-p", 36 "/sdcard/revenge_of_the_skiabot/resources" 37 ], 38 "cwd": "[START_DIR]/skia", 39 "env": { 40 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 41 "CHROME_HEADLESS": "1", 42 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 43 }, 44 "infra_step": true, 45 "name": "mkdir /sdcard/revenge_of_the_skiabot/resources" 46 }, 47 { 48 "cmd": [], 49 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources" 50 }, 51 { 52 "cmd": [ 53 "vpython", 54 "-u", 55 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 56 "--json-output", 57 "/path/to/tmp/json", 58 "listdir", 59 "[START_DIR]/skia/resources", 60 "--recursive" 61 ], 62 "infra_step": true, 63 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.list [START_DIR]/skia/resources", 64 "~followup_annotations": [ 65 "@@@STEP_NEST_LEVEL@1@@@", 66 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skia/resources/.file3@@@", 67 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skia/resources/.ignore/file4@@@", 68 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skia/resources/file1@@@", 69 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skia/resources/subdir/file2@@@", 70 "@@@STEP_LOG_END@listdir@@@" 71 ] 72 }, 73 { 74 "cmd": [ 75 "/opt/infra-android/tools/adb", 76 "push", 77 "[START_DIR]/skia/resources/.file3", 78 "/sdcard/revenge_of_the_skiabot/resources/.file3" 79 ], 80 "cwd": "[START_DIR]/skia", 81 "env": { 82 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 83 "CHROME_HEADLESS": "1", 84 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 85 }, 86 "infra_step": true, 87 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.push [START_DIR]/skia/resources/.file3", 88 "~followup_annotations": [ 89 "@@@STEP_NEST_LEVEL@1@@@" 90 ] 91 }, 92 { 93 "cmd": [ 94 "/opt/infra-android/tools/adb", 95 "push", 96 "[START_DIR]/skia/resources/file1", 97 "/sdcard/revenge_of_the_skiabot/resources/file1" 98 ], 99 "cwd": "[START_DIR]/skia", 100 "env": { 101 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 102 "CHROME_HEADLESS": "1", 103 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 104 }, 105 "infra_step": true, 106 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.push [START_DIR]/skia/resources/file1", 107 "~followup_annotations": [ 108 "@@@STEP_NEST_LEVEL@1@@@" 109 ] 110 }, 111 { 112 "cmd": [ 113 "/opt/infra-android/tools/adb", 114 "push", 115 "[START_DIR]/skia/resources/subdir/file2", 116 "/sdcard/revenge_of_the_skiabot/resources/subdir/file2" 117 ], 118 "cwd": "[START_DIR]/skia", 119 "env": { 120 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 121 "CHROME_HEADLESS": "1", 122 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 123 }, 124 "infra_step": true, 125 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.push [START_DIR]/skia/resources/subdir/file2", 126 "~followup_annotations": [ 127 "@@@STEP_NEST_LEVEL@1@@@" 128 ] 129 }, 130 { 131 "cmd": [ 132 "vpython", 133 "-u", 134 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 135 "--json-output", 136 "/path/to/tmp/json", 137 "copy", 138 "[START_DIR]/skia/infra/bots/assets/skp/VERSION", 139 "/path/to/tmp/" 140 ], 141 "infra_step": true, 142 "name": "Get skp VERSION", 143 "~followup_annotations": [ 144 "@@@STEP_LOG_LINE@VERSION@42@@@", 145 "@@@STEP_LOG_END@VERSION@@@" 146 ] 147 }, 148 { 149 "cmd": [ 150 "vpython", 151 "-u", 152 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 153 "--json-output", 154 "/path/to/tmp/json", 155 "copy", 156 "42", 157 "[START_DIR]/tmp/SKP_VERSION" 158 ], 159 "infra_step": true, 160 "name": "write SKP_VERSION", 161 "~followup_annotations": [ 162 "@@@STEP_LOG_LINE@SKP_VERSION@42@@@", 163 "@@@STEP_LOG_END@SKP_VERSION@@@" 164 ] 165 }, 166 { 167 "cmd": [ 168 "/opt/infra-android/tools/adb", 169 "shell", 170 "cat", 171 "/sdcard/revenge_of_the_skiabot/SKP_VERSION" 172 ], 173 "cwd": "[START_DIR]/skia", 174 "env": { 175 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 176 "CHROME_HEADLESS": "1", 177 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 178 }, 179 "infra_step": true, 180 "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION" 181 }, 182 { 183 "cmd": [ 184 "/opt/infra-android/tools/adb", 185 "shell", 186 "rm", 187 "-f", 188 "/sdcard/revenge_of_the_skiabot/SKP_VERSION" 189 ], 190 "cwd": "[START_DIR]/skia", 191 "env": { 192 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 193 "CHROME_HEADLESS": "1", 194 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 195 }, 196 "infra_step": true, 197 "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION" 198 }, 199 { 200 "cmd": [ 201 "/opt/infra-android/tools/adb", 202 "shell", 203 "rm", 204 "-rf", 205 "/sdcard/revenge_of_the_skiabot/skps" 206 ], 207 "cwd": "[START_DIR]/skia", 208 "env": { 209 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 210 "CHROME_HEADLESS": "1", 211 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 212 }, 213 "infra_step": true, 214 "name": "rm /sdcard/revenge_of_the_skiabot/skps" 215 }, 216 { 217 "cmd": [ 218 "/opt/infra-android/tools/adb", 219 "shell", 220 "mkdir", 221 "-p", 222 "/sdcard/revenge_of_the_skiabot/skps" 223 ], 224 "cwd": "[START_DIR]/skia", 225 "env": { 226 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 227 "CHROME_HEADLESS": "1", 228 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 229 }, 230 "infra_step": true, 231 "name": "mkdir /sdcard/revenge_of_the_skiabot/skps" 232 }, 233 { 234 "cmd": [], 235 "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps" 236 }, 237 { 238 "cmd": [ 239 "vpython", 240 "-u", 241 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 242 "--json-output", 243 "/path/to/tmp/json", 244 "listdir", 245 "[START_DIR]/skp", 246 "--recursive" 247 ], 248 "infra_step": true, 249 "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps.list [START_DIR]/skp", 250 "~followup_annotations": [ 251 "@@@STEP_NEST_LEVEL@1@@@", 252 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skp/.file3@@@", 253 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skp/.ignore/file4@@@", 254 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skp/file1@@@", 255 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skp/subdir/file2@@@", 256 "@@@STEP_LOG_END@listdir@@@" 257 ] 258 }, 259 { 260 "cmd": [ 261 "/opt/infra-android/tools/adb", 262 "push", 263 "[START_DIR]/skp/.file3", 264 "/sdcard/revenge_of_the_skiabot/skps/.file3" 265 ], 266 "cwd": "[START_DIR]/skia", 267 "env": { 268 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 269 "CHROME_HEADLESS": "1", 270 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 271 }, 272 "infra_step": true, 273 "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps.push [START_DIR]/skp/.file3", 274 "~followup_annotations": [ 275 "@@@STEP_NEST_LEVEL@1@@@" 276 ] 277 }, 278 { 279 "cmd": [ 280 "/opt/infra-android/tools/adb", 281 "push", 282 "[START_DIR]/skp/file1", 283 "/sdcard/revenge_of_the_skiabot/skps/file1" 284 ], 285 "cwd": "[START_DIR]/skia", 286 "env": { 287 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 288 "CHROME_HEADLESS": "1", 289 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 290 }, 291 "infra_step": true, 292 "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps.push [START_DIR]/skp/file1", 293 "~followup_annotations": [ 294 "@@@STEP_NEST_LEVEL@1@@@" 295 ] 296 }, 297 { 298 "cmd": [ 299 "/opt/infra-android/tools/adb", 300 "push", 301 "[START_DIR]/skp/subdir/file2", 302 "/sdcard/revenge_of_the_skiabot/skps/subdir/file2" 303 ], 304 "cwd": "[START_DIR]/skia", 305 "env": { 306 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 307 "CHROME_HEADLESS": "1", 308 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 309 }, 310 "infra_step": true, 311 "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps.push [START_DIR]/skp/subdir/file2", 312 "~followup_annotations": [ 313 "@@@STEP_NEST_LEVEL@1@@@" 314 ] 315 }, 316 { 317 "cmd": [ 318 "/opt/infra-android/tools/adb", 319 "push", 320 "[START_DIR]/tmp/SKP_VERSION", 321 "/sdcard/revenge_of_the_skiabot/SKP_VERSION" 322 ], 323 "cwd": "[START_DIR]/skia", 324 "env": { 325 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 326 "CHROME_HEADLESS": "1", 327 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 328 }, 329 "infra_step": true, 330 "name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION" 331 }, 332 { 333 "cmd": [ 334 "vpython", 335 "-u", 336 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 337 "--json-output", 338 "/path/to/tmp/json", 339 "copy", 340 "[START_DIR]/skia/infra/bots/assets/skimage/VERSION", 341 "/path/to/tmp/" 342 ], 343 "infra_step": true, 344 "name": "Get skimage VERSION", 345 "~followup_annotations": [ 346 "@@@STEP_LOG_LINE@VERSION@42@@@", 347 "@@@STEP_LOG_END@VERSION@@@" 348 ] 349 }, 350 { 351 "cmd": [ 352 "vpython", 353 "-u", 354 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 355 "--json-output", 356 "/path/to/tmp/json", 357 "copy", 358 "42", 359 "[START_DIR]/tmp/SK_IMAGE_VERSION" 360 ], 361 "infra_step": true, 362 "name": "write SK_IMAGE_VERSION", 363 "~followup_annotations": [ 364 "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@", 365 "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@" 366 ] 367 }, 368 { 369 "cmd": [ 370 "/opt/infra-android/tools/adb", 371 "shell", 372 "cat", 373 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 374 ], 375 "cwd": "[START_DIR]/skia", 376 "env": { 377 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 378 "CHROME_HEADLESS": "1", 379 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 380 }, 381 "infra_step": true, 382 "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 383 }, 384 { 385 "cmd": [ 386 "/opt/infra-android/tools/adb", 387 "shell", 388 "rm", 389 "-f", 390 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 391 ], 392 "cwd": "[START_DIR]/skia", 393 "env": { 394 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 395 "CHROME_HEADLESS": "1", 396 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 397 }, 398 "infra_step": true, 399 "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 400 }, 401 { 402 "cmd": [ 403 "/opt/infra-android/tools/adb", 404 "shell", 405 "rm", 406 "-rf", 407 "/sdcard/revenge_of_the_skiabot/images" 408 ], 409 "cwd": "[START_DIR]/skia", 410 "env": { 411 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 412 "CHROME_HEADLESS": "1", 413 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 414 }, 415 "infra_step": true, 416 "name": "rm /sdcard/revenge_of_the_skiabot/images" 417 }, 418 { 419 "cmd": [ 420 "/opt/infra-android/tools/adb", 421 "shell", 422 "mkdir", 423 "-p", 424 "/sdcard/revenge_of_the_skiabot/images" 425 ], 426 "cwd": "[START_DIR]/skia", 427 "env": { 428 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 429 "CHROME_HEADLESS": "1", 430 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 431 }, 432 "infra_step": true, 433 "name": "mkdir /sdcard/revenge_of_the_skiabot/images" 434 }, 435 { 436 "cmd": [], 437 "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images" 438 }, 439 { 440 "cmd": [ 441 "vpython", 442 "-u", 443 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 444 "--json-output", 445 "/path/to/tmp/json", 446 "listdir", 447 "[START_DIR]/skimage", 448 "--recursive" 449 ], 450 "infra_step": true, 451 "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images.list [START_DIR]/skimage", 452 "~followup_annotations": [ 453 "@@@STEP_NEST_LEVEL@1@@@", 454 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skimage/.file3@@@", 455 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skimage/.ignore/file4@@@", 456 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skimage/file1@@@", 457 "@@@STEP_LOG_LINE@listdir@[START_DIR]/skimage/subdir/file2@@@", 458 "@@@STEP_LOG_END@listdir@@@" 459 ] 460 }, 461 { 462 "cmd": [ 463 "/opt/infra-android/tools/adb", 464 "push", 465 "[START_DIR]/skimage/.file3", 466 "/sdcard/revenge_of_the_skiabot/images/.file3" 467 ], 468 "cwd": "[START_DIR]/skia", 469 "env": { 470 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 471 "CHROME_HEADLESS": "1", 472 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 473 }, 474 "infra_step": true, 475 "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images.push [START_DIR]/skimage/.file3", 476 "~followup_annotations": [ 477 "@@@STEP_NEST_LEVEL@1@@@" 478 ] 479 }, 480 { 481 "cmd": [ 482 "/opt/infra-android/tools/adb", 483 "push", 484 "[START_DIR]/skimage/file1", 485 "/sdcard/revenge_of_the_skiabot/images/file1" 486 ], 487 "cwd": "[START_DIR]/skia", 488 "env": { 489 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 490 "CHROME_HEADLESS": "1", 491 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 492 }, 493 "infra_step": true, 494 "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images.push [START_DIR]/skimage/file1", 495 "~followup_annotations": [ 496 "@@@STEP_NEST_LEVEL@1@@@" 497 ] 498 }, 499 { 500 "cmd": [ 501 "/opt/infra-android/tools/adb", 502 "push", 503 "[START_DIR]/skimage/subdir/file2", 504 "/sdcard/revenge_of_the_skiabot/images/subdir/file2" 505 ], 506 "cwd": "[START_DIR]/skia", 507 "env": { 508 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 509 "CHROME_HEADLESS": "1", 510 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 511 }, 512 "infra_step": true, 513 "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images.push [START_DIR]/skimage/subdir/file2", 514 "~followup_annotations": [ 515 "@@@STEP_NEST_LEVEL@1@@@" 516 ] 517 }, 518 { 519 "cmd": [ 520 "/opt/infra-android/tools/adb", 521 "push", 522 "[START_DIR]/tmp/SK_IMAGE_VERSION", 523 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 524 ], 525 "cwd": "[START_DIR]/skia", 526 "env": { 527 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 528 "CHROME_HEADLESS": "1", 529 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 530 }, 531 "infra_step": true, 532 "name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 533 }, 534 { 535 "cmd": [ 536 "vpython", 537 "-u", 538 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 539 "--json-output", 540 "/path/to/tmp/json", 541 "copy", 542 "[START_DIR]/skia/infra/bots/assets/svg/VERSION", 543 "/path/to/tmp/" 544 ], 545 "infra_step": true, 546 "name": "Get svg VERSION", 547 "~followup_annotations": [ 548 "@@@STEP_LOG_LINE@VERSION@42@@@", 549 "@@@STEP_LOG_END@VERSION@@@" 550 ] 551 }, 552 { 553 "cmd": [ 554 "vpython", 555 "-u", 556 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 557 "--json-output", 558 "/path/to/tmp/json", 559 "copy", 560 "42", 561 "[START_DIR]/tmp/SVG_VERSION" 562 ], 563 "infra_step": true, 564 "name": "write SVG_VERSION", 565 "~followup_annotations": [ 566 "@@@STEP_LOG_LINE@SVG_VERSION@42@@@", 567 "@@@STEP_LOG_END@SVG_VERSION@@@" 568 ] 569 }, 570 { 571 "cmd": [ 572 "/opt/infra-android/tools/adb", 573 "shell", 574 "cat", 575 "/sdcard/revenge_of_the_skiabot/SVG_VERSION" 576 ], 577 "cwd": "[START_DIR]/skia", 578 "env": { 579 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 580 "CHROME_HEADLESS": "1", 581 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 582 }, 583 "infra_step": true, 584 "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION" 585 }, 586 { 587 "cmd": [ 588 "/opt/infra-android/tools/adb", 589 "shell", 590 "rm", 591 "-f", 592 "/sdcard/revenge_of_the_skiabot/SVG_VERSION" 593 ], 594 "cwd": "[START_DIR]/skia", 595 "env": { 596 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 597 "CHROME_HEADLESS": "1", 598 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 599 }, 600 "infra_step": true, 601 "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION" 602 }, 603 { 604 "cmd": [ 605 "/opt/infra-android/tools/adb", 606 "shell", 607 "rm", 608 "-rf", 609 "/sdcard/revenge_of_the_skiabot/svgs" 610 ], 611 "cwd": "[START_DIR]/skia", 612 "env": { 613 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 614 "CHROME_HEADLESS": "1", 615 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 616 }, 617 "infra_step": true, 618 "name": "rm /sdcard/revenge_of_the_skiabot/svgs" 619 }, 620 { 621 "cmd": [ 622 "/opt/infra-android/tools/adb", 623 "shell", 624 "mkdir", 625 "-p", 626 "/sdcard/revenge_of_the_skiabot/svgs" 627 ], 628 "cwd": "[START_DIR]/skia", 629 "env": { 630 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 631 "CHROME_HEADLESS": "1", 632 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 633 }, 634 "infra_step": true, 635 "name": "mkdir /sdcard/revenge_of_the_skiabot/svgs" 636 }, 637 { 638 "cmd": [], 639 "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs" 640 }, 641 { 642 "cmd": [ 643 "vpython", 644 "-u", 645 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 646 "--json-output", 647 "/path/to/tmp/json", 648 "listdir", 649 "[START_DIR]/svg", 650 "--recursive" 651 ], 652 "infra_step": true, 653 "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs.list [START_DIR]/svg", 654 "~followup_annotations": [ 655 "@@@STEP_NEST_LEVEL@1@@@", 656 "@@@STEP_LOG_LINE@listdir@[START_DIR]/svg/.file3@@@", 657 "@@@STEP_LOG_LINE@listdir@[START_DIR]/svg/.ignore/file4@@@", 658 "@@@STEP_LOG_LINE@listdir@[START_DIR]/svg/file1@@@", 659 "@@@STEP_LOG_LINE@listdir@[START_DIR]/svg/subdir/file2@@@", 660 "@@@STEP_LOG_END@listdir@@@" 661 ] 662 }, 663 { 664 "cmd": [ 665 "/opt/infra-android/tools/adb", 666 "push", 667 "[START_DIR]/svg/.file3", 668 "/sdcard/revenge_of_the_skiabot/svgs/.file3" 669 ], 670 "cwd": "[START_DIR]/skia", 671 "env": { 672 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 673 "CHROME_HEADLESS": "1", 674 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 675 }, 676 "infra_step": true, 677 "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs.push [START_DIR]/svg/.file3", 678 "~followup_annotations": [ 679 "@@@STEP_NEST_LEVEL@1@@@" 680 ] 681 }, 682 { 683 "cmd": [ 684 "/opt/infra-android/tools/adb", 685 "push", 686 "[START_DIR]/svg/file1", 687 "/sdcard/revenge_of_the_skiabot/svgs/file1" 688 ], 689 "cwd": "[START_DIR]/skia", 690 "env": { 691 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 692 "CHROME_HEADLESS": "1", 693 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 694 }, 695 "infra_step": true, 696 "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs.push [START_DIR]/svg/file1", 697 "~followup_annotations": [ 698 "@@@STEP_NEST_LEVEL@1@@@" 699 ] 700 }, 701 { 702 "cmd": [ 703 "/opt/infra-android/tools/adb", 704 "push", 705 "[START_DIR]/svg/subdir/file2", 706 "/sdcard/revenge_of_the_skiabot/svgs/subdir/file2" 707 ], 708 "cwd": "[START_DIR]/skia", 709 "env": { 710 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 711 "CHROME_HEADLESS": "1", 712 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 713 }, 714 "infra_step": true, 715 "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs.push [START_DIR]/svg/subdir/file2", 716 "~followup_annotations": [ 717 "@@@STEP_NEST_LEVEL@1@@@" 718 ] 719 }, 720 { 721 "cmd": [ 722 "/opt/infra-android/tools/adb", 723 "push", 724 "[START_DIR]/tmp/SVG_VERSION", 725 "/sdcard/revenge_of_the_skiabot/SVG_VERSION" 726 ], 727 "cwd": "[START_DIR]/skia", 728 "env": { 729 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 730 "CHROME_HEADLESS": "1", 731 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 732 }, 733 "infra_step": true, 734 "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION" 735 }, 736 { 737 "cmd": [ 738 "vpython", 739 "-u", 740 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 741 "--json-output", 742 "/path/to/tmp/json", 743 "rmtree", 744 "[START_DIR]/test" 745 ], 746 "infra_step": true, 747 "name": "rmtree test" 748 }, 749 { 750 "cmd": [ 751 "vpython", 752 "-u", 753 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 754 "--json-output", 755 "/path/to/tmp/json", 756 "ensure-directory", 757 "--mode", 758 "0777", 759 "[START_DIR]/test" 760 ], 761 "infra_step": true, 762 "name": "makedirs test" 763 }, 764 { 765 "cmd": [ 766 "/opt/infra-android/tools/adb", 767 "shell", 768 "rm", 769 "-rf", 770 "/sdcard/revenge_of_the_skiabot/dm_out" 771 ], 772 "cwd": "[START_DIR]/skia", 773 "env": { 774 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 775 "CHROME_HEADLESS": "1", 776 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 777 }, 778 "infra_step": true, 779 "name": "rm /sdcard/revenge_of_the_skiabot/dm_out" 780 }, 781 { 782 "cmd": [ 783 "/opt/infra-android/tools/adb", 784 "shell", 785 "mkdir", 786 "-p", 787 "/sdcard/revenge_of_the_skiabot/dm_out" 788 ], 789 "cwd": "[START_DIR]/skia", 790 "env": { 791 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 792 "CHROME_HEADLESS": "1", 793 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 794 }, 795 "infra_step": true, 796 "name": "mkdir /sdcard/revenge_of_the_skiabot/dm_out" 797 }, 798 { 799 "cmd": [ 800 "python", 801 "-u", 802 "\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", 803 "https://example.com/hashes.txt", 804 "[START_DIR]/tmp/uninteresting_hashes.txt" 805 ], 806 "env": { 807 "CHROME_HEADLESS": "1", 808 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 809 }, 810 "infra_step": true, 811 "name": "get uninteresting hashes", 812 "~followup_annotations": [ 813 "@@@STEP_LOG_LINE@python.inline@@@@", 814 "@@@STEP_LOG_LINE@python.inline@import contextlib@@@", 815 "@@@STEP_LOG_LINE@python.inline@import math@@@", 816 "@@@STEP_LOG_LINE@python.inline@import socket@@@", 817 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 818 "@@@STEP_LOG_LINE@python.inline@import time@@@", 819 "@@@STEP_LOG_LINE@python.inline@import urllib2@@@", 820 "@@@STEP_LOG_LINE@python.inline@@@@", 821 "@@@STEP_LOG_LINE@python.inline@HASHES_URL = sys.argv[1]@@@", 822 "@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@", 823 "@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@", 824 "@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@", 825 "@@@STEP_LOG_LINE@python.inline@@@@", 826 "@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@", 827 "@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@", 828 "@@@STEP_LOG_LINE@python.inline@ try:@@@", 829 "@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@", 830 "@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@", 831 "@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@", 832 "@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[2], 'w') as f:@@@", 833 "@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@", 834 "@@@STEP_LOG_LINE@python.inline@ break@@@", 835 "@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@", 836 "@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@", 837 "@@@STEP_LOG_LINE@python.inline@ print e@@@", 838 "@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@", 839 "@@@STEP_LOG_LINE@python.inline@ raise@@@", 840 "@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@", 841 "@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@", 842 "@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@", 843 "@@@STEP_LOG_END@python.inline@@@" 844 ] 845 }, 846 { 847 "cmd": [ 848 "/opt/infra-android/tools/adb", 849 "push", 850 "[START_DIR]/tmp/uninteresting_hashes.txt", 851 "/sdcard/revenge_of_the_skiabot/uninteresting_hashes.txt" 852 ], 853 "cwd": "[START_DIR]/skia", 854 "env": { 855 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 856 "CHROME_HEADLESS": "1", 857 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 858 }, 859 "infra_step": true, 860 "name": "push [START_DIR]/tmp/uninteresting_hashes.txt /sdcard/revenge_of_the_skiabot/uninteresting_hashes.txt" 861 }, 862 { 863 "cmd": [ 864 "python", 865 "-u", 866 "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n" 867 ], 868 "name": "get swarming bot id (2)", 869 "~followup_annotations": [ 870 "@@@STEP_LOG_LINE@python.inline@import os@@@", 871 "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@", 872 "@@@STEP_LOG_END@python.inline@@@" 873 ] 874 }, 875 { 876 "cmd": [ 877 "python", 878 "-u", 879 "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n" 880 ], 881 "name": "get swarming task id", 882 "~followup_annotations": [ 883 "@@@STEP_LOG_LINE@python.inline@import os@@@", 884 "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@", 885 "@@@STEP_LOG_END@python.inline@@@" 886 ] 887 }, 888 { 889 "cmd": [ 890 "python", 891 "-u", 892 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", 893 "/opt/infra-android/tools/adb", 894 "0", 895 "ondemand" 896 ], 897 "env": { 898 "CHROME_HEADLESS": "1", 899 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 900 }, 901 "infra_step": true, 902 "name": "Set CPU 0's governor to ondemand", 903 "timeout": 30, 904 "~followup_annotations": [ 905 "@@@STEP_LOG_LINE@python.inline@@@@", 906 "@@@STEP_LOG_LINE@python.inline@import os@@@", 907 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 908 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 909 "@@@STEP_LOG_LINE@python.inline@import time@@@", 910 "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", 911 "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", 912 "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", 913 "@@@STEP_LOG_LINE@python.inline@@@@", 914 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", 915 "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", 916 "@@@STEP_LOG_LINE@python.inline@print log@@@", 917 "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", 918 "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", 919 "@@@STEP_LOG_LINE@python.inline@@@@", 920 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", 921 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", 922 "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", 923 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", 924 "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", 925 "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", 926 "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", 927 "@@@STEP_LOG_END@python.inline@@@" 928 ] 929 }, 930 { 931 "cmd": [ 932 "/opt/infra-android/tools/adb", 933 "push", 934 "[START_DIR]/build/dm", 935 "/data/local/tmp/" 936 ], 937 "cwd": "[START_DIR]/skia", 938 "env": { 939 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 940 "CHROME_HEADLESS": "1", 941 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 942 }, 943 "infra_step": true, 944 "name": "push dm" 945 }, 946 { 947 "cmd": [ 948 "vpython", 949 "-u", 950 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 951 "--json-output", 952 "/path/to/tmp/json", 953 "copy", 954 "set -x; /data/local/tmp/dm --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 builder Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android buildbucket_build_id 123454321 task_id task_12345 swarming_bot_id \"\" swarming_task_id \"\" --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 Android model Nexus7 os Android style default --uninterestingHashesFile /sdcard/revenge_of_the_skiabot/uninteresting_hashes.txt --writePath /sdcard/revenge_of_the_skiabot/dm_out --threads 0 --nocpu --config gles glesdft glessrgb --src tests gm image colorImage svg --blacklist _ test _ ProcessorCloneTest _ test _ Programs _ test _ ProcessorOptimizationValidationTest _ gm _ savelayer_clipmask _ svg _ svgparse_ glessrgb image _ _ _ image gen_platf error _ test _ GrShape _ 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 --nonativeFonts --verbose; echo $? >/data/local/tmp/rc", 955 "[START_DIR]/tmp/dm.sh" 956 ], 957 "env": { 958 "CHROME_HEADLESS": "1", 959 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 960 }, 961 "infra_step": true, 962 "name": "write dm.sh", 963 "~followup_annotations": [ 964 "@@@STEP_LOG_LINE@dm.sh@set -x; /data/local/tmp/dm --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 builder Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android buildbucket_build_id 123454321 task_id task_12345 swarming_bot_id \"\" swarming_task_id \"\" --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 Android model Nexus7 os Android style default --uninterestingHashesFile /sdcard/revenge_of_the_skiabot/uninteresting_hashes.txt --writePath /sdcard/revenge_of_the_skiabot/dm_out --threads 0 --nocpu --config gles glesdft glessrgb --src tests gm image colorImage svg --blacklist _ test _ ProcessorCloneTest _ test _ Programs _ test _ ProcessorOptimizationValidationTest _ gm _ savelayer_clipmask _ svg _ svgparse_ glessrgb image _ _ _ image gen_platf error _ test _ GrShape _ 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 --nonativeFonts --verbose; echo $? >/data/local/tmp/rc@@@", 965 "@@@STEP_LOG_END@dm.sh@@@" 966 ] 967 }, 968 { 969 "cmd": [ 970 "/opt/infra-android/tools/adb", 971 "push", 972 "[START_DIR]/tmp/dm.sh", 973 "/data/local/tmp/" 974 ], 975 "cwd": "[START_DIR]/skia", 976 "env": { 977 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 978 "CHROME_HEADLESS": "1", 979 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 980 }, 981 "infra_step": true, 982 "name": "push dm.sh" 983 }, 984 { 985 "cmd": [ 986 "/opt/infra-android/tools/adb", 987 "logcat", 988 "-c" 989 ], 990 "cwd": "[START_DIR]/skia", 991 "env": { 992 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 993 "CHROME_HEADLESS": "1", 994 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 995 }, 996 "infra_step": true, 997 "name": "clear log" 998 }, 999 { 1000 "cmd": [ 1001 "python", 1002 "-u", 1003 "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/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", 1004 "/data/local/tmp/", 1005 "dm.sh" 1006 ], 1007 "env": { 1008 "CHROME_HEADLESS": "1", 1009 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 1010 }, 1011 "name": "dm", 1012 "~followup_annotations": [ 1013 "@@@STEP_LOG_LINE@python.inline@@@@", 1014 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 1015 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 1016 "@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@", 1017 "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", 1018 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", 1019 "@@@STEP_LOG_LINE@python.inline@try:@@@", 1020 "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", 1021 "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", 1022 "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", 1023 "@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@", 1024 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", 1025 "@@@STEP_LOG_END@python.inline@@@", 1026 "@@@STEP_FAILURE@@@" 1027 ] 1028 }, 1029 { 1030 "cmd": [], 1031 "name": "adb pull", 1032 "~followup_annotations": [ 1033 "@@@STEP_EXCEPTION@@@" 1034 ] 1035 }, 1036 { 1037 "cmd": [ 1038 "/opt/infra-android/tools/adb", 1039 "pull", 1040 "/sdcard/revenge_of_the_skiabot/dm_out", 1041 "[CLEANUP]/adb_pull_tmp_1" 1042 ], 1043 "cwd": "[START_DIR]/skia", 1044 "env": { 1045 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 1046 "CHROME_HEADLESS": "1", 1047 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 1048 }, 1049 "infra_step": true, 1050 "name": "adb pull.pull /sdcard/revenge_of_the_skiabot/dm_out", 1051 "~followup_annotations": [ 1052 "@@@STEP_NEST_LEVEL@1@@@", 1053 "@@@STEP_EXCEPTION@@@" 1054 ] 1055 }, 1056 { 1057 "cmd": [ 1058 "/opt/infra-android/tools/adb", 1059 "kill-server" 1060 ], 1061 "cwd": "[START_DIR]/skia", 1062 "env": { 1063 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 1064 "CHROME_HEADLESS": "1", 1065 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 1066 }, 1067 "infra_step": true, 1068 "name": "adb pull.kill adb server after failure of 'pull /sdcard/revenge_of_the_skiabot/dm_out' (attempt 1)", 1069 "timeout": 30, 1070 "~followup_annotations": [ 1071 "@@@STEP_NEST_LEVEL@1@@@" 1072 ] 1073 }, 1074 { 1075 "cmd": [ 1076 "/opt/infra-android/tools/adb", 1077 "wait-for-device" 1078 ], 1079 "cwd": "[START_DIR]/skia", 1080 "env": { 1081 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 1082 "CHROME_HEADLESS": "1", 1083 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 1084 }, 1085 "infra_step": true, 1086 "name": "adb pull.wait for device after failure of 'pull /sdcard/revenge_of_the_skiabot/dm_out' (attempt 1)", 1087 "timeout": 180, 1088 "~followup_annotations": [ 1089 "@@@STEP_NEST_LEVEL@1@@@" 1090 ] 1091 }, 1092 { 1093 "cmd": [ 1094 "/opt/infra-android/tools/adb", 1095 "pull", 1096 "/sdcard/revenge_of_the_skiabot/dm_out", 1097 "[CLEANUP]/adb_pull_tmp_1" 1098 ], 1099 "cwd": "[START_DIR]/skia", 1100 "env": { 1101 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 1102 "CHROME_HEADLESS": "1", 1103 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 1104 }, 1105 "infra_step": true, 1106 "name": "adb pull.pull /sdcard/revenge_of_the_skiabot/dm_out (attempt 2)", 1107 "~followup_annotations": [ 1108 "@@@STEP_NEST_LEVEL@1@@@", 1109 "@@@STEP_EXCEPTION@@@" 1110 ] 1111 }, 1112 { 1113 "cmd": [ 1114 "/opt/infra-android/tools/adb", 1115 "kill-server" 1116 ], 1117 "cwd": "[START_DIR]/skia", 1118 "env": { 1119 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 1120 "CHROME_HEADLESS": "1", 1121 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 1122 }, 1123 "infra_step": true, 1124 "name": "adb pull.kill adb server after failure of 'pull /sdcard/revenge_of_the_skiabot/dm_out' (attempt 2)", 1125 "timeout": 30, 1126 "~followup_annotations": [ 1127 "@@@STEP_NEST_LEVEL@1@@@" 1128 ] 1129 }, 1130 { 1131 "cmd": [ 1132 "/opt/infra-android/tools/adb", 1133 "wait-for-device" 1134 ], 1135 "cwd": "[START_DIR]/skia", 1136 "env": { 1137 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 1138 "CHROME_HEADLESS": "1", 1139 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 1140 }, 1141 "infra_step": true, 1142 "name": "adb pull.wait for device after failure of 'pull /sdcard/revenge_of_the_skiabot/dm_out' (attempt 2)", 1143 "timeout": 180, 1144 "~followup_annotations": [ 1145 "@@@STEP_NEST_LEVEL@1@@@" 1146 ] 1147 }, 1148 { 1149 "cmd": [ 1150 "/opt/infra-android/tools/adb", 1151 "pull", 1152 "/sdcard/revenge_of_the_skiabot/dm_out", 1153 "[CLEANUP]/adb_pull_tmp_1" 1154 ], 1155 "cwd": "[START_DIR]/skia", 1156 "env": { 1157 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 1158 "CHROME_HEADLESS": "1", 1159 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 1160 }, 1161 "infra_step": true, 1162 "name": "adb pull.pull /sdcard/revenge_of_the_skiabot/dm_out (attempt 3)", 1163 "~followup_annotations": [ 1164 "@@@STEP_NEST_LEVEL@1@@@", 1165 "@@@STEP_EXCEPTION@@@" 1166 ] 1167 }, 1168 { 1169 "cmd": [ 1170 "python", 1171 "-u", 1172 "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/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 try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print line\n", 1173 "[START_DIR]/build" 1174 ], 1175 "env": { 1176 "CHROME_HEADLESS": "1", 1177 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 1178 }, 1179 "infra_step": true, 1180 "name": "dump log", 1181 "timeout": 300, 1182 "~followup_annotations": [ 1183 "@@@STEP_LOG_LINE@python.inline@@@@", 1184 "@@@STEP_LOG_LINE@python.inline@import os@@@", 1185 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", 1186 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 1187 "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", 1188 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", 1189 "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", 1190 "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", 1191 "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", 1192 "@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@", 1193 "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", 1194 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", 1195 "@@@STEP_LOG_LINE@python.inline@ try:@@@", 1196 "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", 1197 "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", 1198 "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", 1199 "@@@STEP_LOG_LINE@python.inline@ pass@@@", 1200 "@@@STEP_LOG_LINE@python.inline@ print line@@@", 1201 "@@@STEP_LOG_END@python.inline@@@" 1202 ] 1203 }, 1204 { 1205 "cmd": [ 1206 "/opt/infra-android/tools/adb", 1207 "kill-server" 1208 ], 1209 "cwd": "[START_DIR]/skia", 1210 "env": { 1211 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 1212 "CHROME_HEADLESS": "1", 1213 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 1214 }, 1215 "infra_step": true, 1216 "name": "kill adb server" 1217 }, 1218 { 1219 "failure": { 1220 "humanReason": "Infra Failure: Step('adb pull.pull /sdcard/revenge_of_the_skiabot/dm_out (attempt 3)') (retcode: 1)" 1221 }, 1222 "name": "$result" 1223 } 1224]