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