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