1# Describes the tasks we run in the continuous integration (CI) environment. 2# 3# Cocoon[1] uses this file to generate a checklist of tasks to be performed for 4# every master commit. 5# 6# [1] github.com/flutter/cocoon 7 8# CI tasks. 9# 10# Each key in this dictionary is the unique name of a task, which also 11# corresponds to a file in the "bin/" directory that the task runner will run. 12# 13# Required properties: 14# 15# * description: free form string 16# describes what the task is about 17# * stage: one of "devicelab", "devicelab_ios", "devicelab_win" 18# tasks are grouped by stage so they appear next to each on the dashboard and have a distinct 19# icon attached to them. Stages can be used to create dependencies, e.g. we may decide to not 20# run device tests on red Cirrus builds. 21# * required_agent_capabilities: a list of strings 22# list of capabilities a devicelab agent must have to be able to run this task. 23# 24# Optional properties: 25# 26# * flaky: boolean true or false 27# whether the task is considered flaky; the result of running a flaky task does not affect 28# the overall build status. Tests should be marked flaky when newly added, until they have 29# been proved for a few cycles. Tests that are actually flaky but not being actively worked 30# on should be hidden because they just cause confusion otherwise. 31# * timeout_in_minutes: integer 32# a custom task timeout, specified in minutes. 33 34tasks: 35 # Tests of compiling in a variety of modes 36 37 complex_layout_android__compile: 38 description: > 39 Collects various performance metrics of compiling the Complex 40 Layout sample app for Android from Linux. 41 stage: devicelab 42 required_agent_capabilities: ["linux/android"] 43 44 complex_layout_ios__compile: 45 description: > 46 Collects various performance metrics of compiling the Complex 47 Layout sample app for iOS from Mac. 48 stage: devicelab_ios 49 required_agent_capabilities: ["mac/ios"] 50 51 complex_layout_win__compile: 52 description: > 53 Collects various performance metrics of compiling the Complex 54 Layout for Android from Windows. 55 stage: devicelab_win 56 required_agent_capabilities: ["windows/android"] 57 58 basic_material_app_android__compile: 59 description: > 60 Collects various performance metrics of compiling the default 61 app for Android from Linux. 62 stage: devicelab 63 required_agent_capabilities: ["linux/android"] 64 65 basic_material_app_ios__compile: 66 description: > 67 Collects various performance metrics of compiling the default 68 app for iOS from Mac. 69 stage: devicelab_ios 70 required_agent_capabilities: ["mac/ios"] 71 72 basic_material_app_win__compile: 73 description: > 74 Collects various performance metrics of compiling the default 75 app for Android from Windows. 76 stage: devicelab_win 77 required_agent_capabilities: ["windows/android"] 78 79 codegen_integration_win: 80 description: > 81 Runs codegeneration and verifies that it can execute 82 correctly. 83 stage: devicelab_win 84 required_agent_capabilities: ["windows/android"] 85 86 codegen_integration_mac: 87 description: > 88 Runs codegeneration and verifies that it can execute 89 correctly. 90 stage: devicelab_ios 91 required_agent_capabilities: ["mac/ios"] 92 93 codegen_integration_linux: 94 description: > 95 Runs codegeneration and verifies that it can execute 96 correctly. 97 stage: devicelab 98 required_agent_capabilities: ["linux/android"] 99 100 uncaught_image_error_linux: 101 description: > 102 Ensures that an error thrown into the zone can be caught by the ImageStream 103 completer 104 stage: devicelab 105 required_agent_capabilities: ["linux/android"] 106 107 flutter_gallery_android__compile: 108 description: > 109 Collects various performance metrics of compiling the Flutter 110 Gallery for Android from Linux. 111 stage: devicelab 112 required_agent_capabilities: ["linux/android"] 113 114 flutter_gallery_ios__compile: 115 description: > 116 Collects various performance metrics of compiling the Flutter 117 Gallery for iOS from Mac. 118 stage: devicelab_ios 119 required_agent_capabilities: ["mac/ios"] 120 121 flutter_gallery_win__compile: 122 description: > 123 Collects various performance metrics of compiling the Flutter 124 Gallery for Android from Windows. 125 stage: devicelab_win 126 required_agent_capabilities: ["windows/android"] 127 128 windows_chrome_dev_mode: 129 description: > 130 Run flutter web on the devicelab and hot restart. 131 stage: devicelab_win 132 required_agent_capabilities: ["windows/android"] 133 flaky: true 134 135 # Android on-device tests 136 137 complex_layout_scroll_perf__timeline_summary: 138 description: > 139 Measures the runtime performance of the Complex Layout sample app on 140 Android. 141 stage: devicelab 142 required_agent_capabilities: ["mac/android"] 143 144 tiles_scroll_perf__timeline_summary: 145 description: > 146 Measures the runtime performance of the tiles tab in the Complex Layout sample app on Android. 147 stage: devicelab 148 required_agent_capabilities: ["mac/android"] 149 150 tiles_scroll_perf_ios__timeline_summary: 151 description: > 152 Measures the runtime performance of the tiles tab in the Complex Layout sample app on iPhone 6. 153 stage: devicelab_ios 154 required_agent_capabilities: ["mac/ios"] 155 156 tiles_scroll_perf_iphonexs__timeline_summary: 157 description: > 158 Measures the runtime performance of the tiles tab in the Complex Layout sample app on iPhone XS. 159 stage: devicelab_ios 160 required_agent_capabilities: ["mac/iphonexs"] 161 162 home_scroll_perf__timeline_summary: 163 description: > 164 Measures the runtime performance of scrolling the material page in the 165 flutter_gallery app on Android. 166 stage: devicelab 167 required_agent_capabilities: ["mac/android"] 168 169 drive_perf_debug_warning: 170 description: > 171 Check that driver will print warnings when traceAction is called in debug mode. 172 stage: devicelab 173 required_agent_capabilities: ["mac/android"] 174 175 cull_opacity_perf__timeline_summary: 176 description: > 177 Measures the runtime performance of culling opacity widgets on Android. 178 stage: devicelab 179 required_agent_capabilities: ["mac/android"] 180 181 cubic_bezier_perf__timeline_summary: 182 description: > 183 Measures the runtime performance of cubic bezier animations on Android. 184 stage: devicelab 185 required_agent_capabilities: ["mac/android"] 186 187 backdrop_filter_perf__timeline_summary: 188 description: > 189 Measures the runtime performance of backdrop filter blurs on Android. 190 stage: devicelab 191 required_agent_capabilities: ["mac/android"] 192 193 flavors_test: 194 description: > 195 Checks that flavored builds work on Android. 196 stage: devicelab 197 required_agent_capabilities: ["mac/android"] 198 199 channels_integration_test: 200 description: > 201 Checks that platform channels work on Android. 202 stage: devicelab 203 required_agent_capabilities: ["mac/android"] 204 205 external_ui_integration_test: 206 description: > 207 Checks that external UIs work on Android. 208 stage: devicelab 209 required_agent_capabilities: ["mac/android"] 210 211 embedded_android_views_integration_test: 212 description: > 213 Tests embedded Android views. 214 stage: devicelab 215 required_agent_capabilities: ["mac/android"] 216 217 android_semantics_integration_test: 218 description: > 219 Tests that the Android accessibility bridge produces correct semantics. 220 stage: devicelab 221 required_agent_capabilities: ["mac/android"] 222 223 run_release_test: 224 description: > 225 Checks that `flutter run --release` does not crash. 226 stage: devicelab 227 required_agent_capabilities: ["mac/android"] 228 229 platform_interaction_test: 230 description: > 231 Checks platform interaction on Android. 232 stage: devicelab 233 required_agent_capabilities: ["mac/android"] 234 235 platform_channel_sample_test: 236 description: > 237 Runs a driver test on the Platform Channel sample app on Android. 238 stage: devicelab 239 required_agent_capabilities: ["mac/android"] 240 241 platform_view__start_up: 242 description: > 243 Verifies that Platform View can be used from an Android project. 244 stage: devicelab 245 required_agent_capabilities: ["mac/android"] 246 247 complex_layout__start_up: 248 description: > 249 Measures the startup time of the Complex Layout sample app on Android. 250 stage: devicelab 251 required_agent_capabilities: ["mac/android"] 252 253 hot_mode_dev_cycle__benchmark: 254 description: > 255 Measures the performance of Dart VM hot patching feature. 256 stage: devicelab 257 required_agent_capabilities: ["mac/android"] 258 259 complex_layout_scroll_perf__memory: 260 description: > 261 Measures memory usage of the scroll performance test. 262 stage: devicelab 263 required_agent_capabilities: ["mac/android"] 264 265 hello_world_android__compile: 266 description: > 267 Measures the APK size of Hello World. 268 stage: devicelab 269 required_agent_capabilities: ["mac/android"] 270 271 hello_world__memory: 272 description: > 273 Measures starting memory usage of the simplest Flutter app. 274 stage: devicelab 275 required_agent_capabilities: ["mac/android"] 276 277 # hello_world__start_up: 278 # description: > 279 # Verifies that Hello World can start on an array of devices. 280 # stage: devicelab 281 # required_agent_capabilities: ["linux/android_esoteric"] 282 283 microbenchmarks: 284 description: > 285 Runs benchmarks from dev/benchmarks/microbenchmarks. 286 stage: devicelab 287 required_agent_capabilities: ["mac/android"] 288 timeout_in_minutes: 30 289 290 flutter_view__start_up: 291 description: > 292 Verifies that Flutter View can be used from an Android project. 293 stage: devicelab 294 required_agent_capabilities: ["mac/android"] 295 296 integration_ui: 297 description: > 298 Runs end-to-end Flutter tests on Android. 299 stage: devicelab 300 required_agent_capabilities: ["mac/android"] 301 302 commands_test: 303 description: > 304 Runs tests of flutter run commands. 305 stage: devicelab 306 required_agent_capabilities: ["mac/android"] 307 308 run_machine_concurrent_hot_reload: 309 description: > 310 Runs tests of concurrent hot reload commands via flutter run --machine. 311 stage: devicelab 312 required_agent_capabilities: ["mac/android"] 313 314 service_extensions_test: 315 description: > 316 Validates our service protocol extensions. 317 stage: devicelab 318 required_agent_capabilities: ["mac/android"] 319 320 android_sample_catalog_generator: 321 description: > 322 Builds sample catalog markdown pages and Android screenshots 323 stage: devicelab 324 required_agent_capabilities: ["mac/android"] 325 326 complex_layout_semantics_perf: 327 description: > 328 Measures duration of building the initial semantics tree. 329 stage: devicelab 330 required_agent_capabilities: ["linux/android"] 331 332 routing_test: 333 description: > 334 Verifies that `flutter drive --route` still works. No performance numbers. 335 stage: devicelab 336 required_agent_capabilities: ["linux/android"] 337 338 flutter_gallery_instrumentation_test: 339 description: > 340 Same as flutter_gallery__transition_perf but uses Android instrumentation 341 framework, and therefore does not require a host computer to run. This 342 test can run on off-the-shelf infrastructures, such as Firebase Test Lab. 343 stage: devicelab 344 required_agent_capabilities: ["linux/android"] 345 flaky: true 346 347 flutter_attach_test: 348 description: > 349 Tests the `flutter attach` command. 350 stage: devicelab 351 required_agent_capabilities: ["linux/android"] 352 353 named_isolates_test: 354 description: > 355 Tests naming and attaching to specific isolates. 356 stage: devicelab 357 required_agent_capabilities: ["linux/android"] 358 359 linux_chrome_dev_mode: 360 description: > 361 Run flutter web on the devicelab and hot restart. 362 stage: devicelab 363 required_agent_capabilities: ["linux/android"] 364 flaky: true 365 366 web_size__compile_test: 367 description: > 368 Measures the size of a dart2js bundle. 369 stage: devicelab 370 required_agent_capabilities: ["linux/android"] 371 372 image_list_reported_duration: 373 description: > 374 Measures image loading performance on release (aot) build. 375 stage: devicelab 376 required_agent_capabilities: ["linux/android"] 377 378 image_list_jit_reported_duration: 379 description: > 380 Measures image loading performance on debug (jit) build. 381 stage: devicelab 382 required_agent_capabilities: ["linux/android"] 383 384 build_benchmark: 385 description: > 386 Measures APK build performance across config changes. 387 stage: devicelab 388 required_agent_capabilities: ["linux/android"] 389 390 # iOS on-device tests 391 392 flavors_test_ios: 393 description: > 394 Checks that flavored builds work on iPhone 6. 395 stage: devicelab_ios 396 required_agent_capabilities: ["mac/ios"] 397 398 external_ui_integration_test_ios: 399 description: > 400 Checks that external UIs work on iPhone 6. 401 stage: devicelab_ios 402 required_agent_capabilities: ["mac/ios"] 403 404 channels_integration_test_ios: 405 description: > 406 Checks that platform channels work on iPhone 6. 407 stage: devicelab_ios 408 required_agent_capabilities: ["mac/ios"] 409 410 platform_interaction_test_ios: 411 description: > 412 Checks platform interaction on iPhone 6. 413 stage: devicelab_ios 414 required_agent_capabilities: ["mac/ios"] 415 416 platform_channel_sample_test_ios: 417 description: > 418 Runs a driver test on the Platform Channel sample app on iPhone 6 Objective-C project. 419 stage: devicelab_ios 420 required_agent_capabilities: ["mac/ios"] 421 422 platform_channel_sample_test_swift: 423 description: > 424 Runs a driver test on the Platform Channel sample app on iPhone 6 Swift project. 425 stage: devicelab_ios 426 required_agent_capabilities: ["mac/ios"] 427 428 platform_view_ios__start_up: 429 description: > 430 Verifies that Platform View can be used from an iOS project. 431 stage: devicelab_ios 432 required_agent_capabilities: ["mac/ios"] 433 434 complex_layout_scroll_perf_ios__timeline_summary: 435 description: > 436 Measures the runtime performance of the Complex Layout sample app on 437 iOS. 438 stage: devicelab_ios 439 required_agent_capabilities: ["mac/ios"] 440 441 flutter_gallery_ios__start_up: 442 description: > 443 Measures the startup time of the Flutter Gallery app on iPhone 6. 444 stage: devicelab_ios 445 required_agent_capabilities: ["mac/ios"] 446 447 complex_layout_ios__start_up: 448 description: > 449 Measures the startup time of the Complex Layout sample app on iPhone 6. 450 stage: devicelab_ios 451 required_agent_capabilities: ["mac/ios"] 452 453 flutter_gallery_ios__transition_perf: 454 description: > 455 Measures the performance of screen transitions in Flutter Gallery on 456 iOS. 457 stage: devicelab_ios 458 required_agent_capabilities: ["mac/ios"] 459 460 hello_world_ios__compile: 461 description: > 462 Measures the IPA size of Hello World. 463 stage: devicelab_ios 464 required_agent_capabilities: ["mac/ios"] 465 466 microbenchmarks_ios: 467 description: > 468 Runs benchmarks from dev/benchmarks/microbenchmarks on iPhone 6. 469 stage: devicelab_ios 470 required_agent_capabilities: ["mac/ios"] 471 timeout_in_minutes: 30 472 473 flutter_view_ios__start_up: 474 description: > 475 Verifies that Flutter View can be used from an iOS project. 476 stage: devicelab_ios 477 flaky: true 478 required_agent_capabilities: ["mac/ios"] 479 480 integration_ui_ios: 481 description: > 482 Runs end-to-end Flutter tests on iPhone 6. 483 stage: devicelab_ios 484 required_agent_capabilities: ["mac/ios"] 485 timeout_in_minutes: 20 486 487 system_debug_ios: 488 description: > 489 Tests that the Engine correctly initializes the system debugger for debug-mode iOS apps. 490 stage: devicelab_ios 491 required_agent_capabilities: ["mac/ios"] 492 timeout_in_minutes: 10 493 494 ios_sample_catalog_generator: 495 description: > 496 Builds sample catalog markdown pages and iOS screenshots 497 stage: devicelab_ios 498 required_agent_capabilities: ["mac/ios"] 499 500 macos_chrome_dev_mode: 501 description: > 502 Run flutter web on the devicelab and hot restart. 503 stage: devicelab_ios 504 required_agent_capabilities: ["mac/ios"] 505 flaky: true # marekd as flaky while infra is under heavy development 506 507 build_benchmark_ios: 508 description: > 509 Measures iOS build performance across config changes. 510 stage: devicelab_ios 511 required_agent_capabilities: ["mac/ios"] 512 513 smoke_catalina_start_up: 514 description: > 515 A smoke test that runs on macOS Catalina, which is a clone of the Gallery startup latency test. 516 stage: devicelab_ios 517 flaky: true 518 required_agent_capabilities: ["mac-catalina/ios"] 519 520 smoke_catalina_hot_mode_dev_cycle__benchmark: 521 description: > 522 A some test that runs on macOS Catalina, which is a clone of the Dart VM hot patching performance benchmarking. 523 stage: devicelab_ios 524 flaky: true 525 required_agent_capabilities: ["mac-catalina/ios"] 526 527 # Tests running on Windows host 528 529 flavors_test_win: 530 description: > 531 Checks that flavored builds work on Windows. 532 stage: devicelab_win 533 required_agent_capabilities: ["windows/android"] 534 535 channels_integration_test_win: 536 description: > 537 Checks that platform channels work when app is launched from Windows. 538 stage: devicelab_win 539 required_agent_capabilities: ["windows/android"] 540 541 plugin_test_win: 542 description: > 543 Checks that the project template works and supports plugins on Windows. 544 stage: devicelab_win 545 required_agent_capabilities: ["windows/android"] 546 547 hot_mode_dev_cycle_win__benchmark: 548 description: > 549 Measures the performance of Dart VM hot patching feature on Windows. 550 stage: devicelab_win 551 required_agent_capabilities: ["windows/android"] 552 553 run_without_leak_win: 554 description: > 555 Checks that `flutter run` does not leak dart.exe on Windows. 556 stage: devicelab_win 557 required_agent_capabilities: ["windows/android"] 558 559 # Tests running on Linux hosts 560 561 hot_mode_dev_cycle_linux__benchmark: 562 description: > 563 Measures the performance of Dart VM hot patching feature on a Linux host. 564 stage: devicelab 565 required_agent_capabilities: ["linux/android"] 566 567 flutter_test_performance: 568 description: > 569 Measures performance of running flutter test. 570 stage: devicelab 571 required_agent_capabilities: ["linux/android"] 572 573 technical_debt__cost: 574 description: > 575 Estimates our technical debt (TODOs, analyzer ignores, etc). 576 stage: devicelab 577 required_agent_capabilities: ["linux/android"] 578 579 flutter_gallery__start_up: 580 description: > 581 Measures the startup time of the Flutter Gallery app on Android. 582 stage: devicelab 583 required_agent_capabilities: ["linux/android"] 584 585 flutter_gallery__transition_perf: 586 description: > 587 Measures the performance of screen transitions in Flutter Gallery on 588 Android. 589 stage: devicelab 590 flaky: true 591 required_agent_capabilities: ["linux/android"] 592 593 flutter_gallery__transition_perf_with_semantics: 594 description: > 595 Measures the delta in performance of screen transitions without and 596 with semantics enabled. 597 stage: devicelab 598 flaky: true 599 required_agent_capabilities: ["linux/android"] 600 601 flutter_gallery__memory_nav: 602 description: > 603 Measures memory usage after repeated navigation in Gallery. 604 stage: devicelab 605 required_agent_capabilities: ["linux/android"] 606 607 flutter_gallery__back_button_memory: 608 description: > 609 Measures memory usage after Android app suspend and resume. 610 stage: devicelab 611 required_agent_capabilities: ["linux/android"] 612 613 flutter_gallery__image_cache_memory: 614 description: > 615 Measures memory usage for a list of large red squares in smaller containers. 616 stage: devicelab 617 required_agent_capabilities: ["linux/android"] 618 619 analyzer_benchmark: 620 description: > 621 Measures the speed of Dart analyzer. 622 stage: devicelab 623 required_agent_capabilities: ["linux/android"] 624 625 run_without_leak_linux: 626 description: > 627 Checks that `flutter run` does not leak dart on Linux. 628 stage: devicelab 629 required_agent_capabilities: ["linux/android"] 630 flaky: true 631 632 flutter_gallery_ios32__start_up: 633 description: > 634 Measures the startup time of the Flutter Gallery app on 32-bit iOS (iPhone 4S). 635 stage: devicelab_ios 636 required_agent_capabilities: ["mac/ios32"] 637 638 flutter_gallery_ios32__transition_perf: 639 description: > 640 Measures the performance of screen transitions in Flutter Gallery on 641 32-bit iOS (iPhone 4S). 642 stage: devicelab_ios 643 required_agent_capabilities: ["mac/ios32"] 644 645 run_without_leak_mac: 646 description: > 647 Checks that `flutter run` does not leak dart on macOS. 648 stage: devicelab 649 required_agent_capabilities: ["mac/android"] 650 flaky: true 651 652 android_splash_screen_integration_test: 653 description: > 654 Runs end-to-end test of Flutter's Android splash behavior. 655 stage: devicelab 656 required_agent_capabilities: ["linux/android"] 657 flaky: true 658