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