# Describes the targets run in continuous integration environment. # # Flutter infra uses this file to generate a checklist of tasks to be performed # for every commit. # # More information at: # * https://github.com/flutter/cocoon/blob/main/CI_YAML.md enabled_branches: - main platform_properties: linux: properties: os: Ubuntu cores: "8" device_type: none dependencies: >- [ {"dependency": "curl", "version": "version:7.64.0"} ] linux_android: properties: os: Ubuntu cores: "8" device_type: none dependencies: >- [ {"dependency": "android_sdk", "version": "version:33v6"}, {"dependency": "open_jdk", "version": "version:17"}, {"dependency": "curl", "version": "version:7.64.0"} ] linux_desktop: properties: os: Ubuntu cores: "8" device_type: none dependencies: >- [ {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "ninja", "version": "version:1.9.0"}, {"dependency": "curl", "version": "version:7.64.0"} ] linux_web: properties: os: Ubuntu cores: "8" device_type: none dependencies: >- [ {"dependency": "chrome_and_driver", "version": "version:114.0"} ] windows: properties: dependencies: > [ {"dependency": "certs", "version": "version:9563bb"} ] device_type: none os: Windows mac_arm64: properties: dependencies: >- [ {"dependency": "gems", "version": "v3.3.14"} ] os: Mac-12 device_type: none cpu: arm64 $flutter/osx_sdk : >- { "sdk_version": "14e300c" } mac_x64: properties: dependencies: >- [ {"dependency": "gems", "version": "v3.3.14"} ] os: Mac-12 device_type: none cpu: x86 $flutter/osx_sdk : >- { "sdk_version": "14e300c" } targets: ### Linux-host general tasks ### - name: Linux repo_tools_tests recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" target_file: repo_tools_tests.yaml channel: master version_file: flutter_master.version - name: Linux repo_checks recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" target_file: repo_checks.yaml channel: master version_file: flutter_master.version # The format check requires clang-format. dependencies: >- [ {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"} ] - name: Linux dart_unit_test_shard_1 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" target_file: dart_unit_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 0 --shardCount 2" - name: Linux dart_unit_test_shard_2 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" target_file: dart_unit_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 1 --shardCount 2" - name: Linux dart_unit_test_shard_1 stable recipe: packages/packages timeout: 60 properties: target_file: dart_unit_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 0 --shardCount 2" - name: Linux dart_unit_test_shard_2 stable recipe: packages/packages timeout: 60 properties: target_file: dart_unit_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 1 --shardCount 2" - name: Linux_web web_dart_unit_test_shard_1 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" target_file: web_dart_unit_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 0 --shardCount 2" - name: Linux_web web_dart_unit_test_shard_2 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" target_file: web_dart_unit_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 1 --shardCount 2" - name: Linux_web web_dart_unit_test_shard_1 stable recipe: packages/packages timeout: 60 properties: target_file: web_dart_unit_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 0 --shardCount 2" - name: Linux_web web_dart_unit_test_shard_2 stable recipe: packages/packages timeout: 60 properties: target_file: web_dart_unit_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 1 --shardCount 2" - name: Linux analyze master recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" target_file: analyze.yaml channel: master version_file: flutter_master.version - name: Linux analyze stable recipe: packages/packages timeout: 30 properties: target_file: analyze.yaml channel: stable version_file: flutter_stable.version - name: Linux analyze_downgraded master recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" target_file: analyze_downgraded.yaml channel: master version_file: flutter_master.version - name: Linux analyze_downgraded stable recipe: packages/packages timeout: 30 properties: target_file: analyze_downgraded.yaml channel: stable version_file: flutter_stable.version # Analyze with the previous stable (N-1) and the stable before that (N-2). The # versions in `channel` should be updated after a new major stable release. - name: Linux analyze_legacy N-1 recipe: packages/packages timeout: 30 properties: target_file: analyze_legacy.yaml channel: "3.10.6" - name: Linux analyze_legacy N-2 recipe: packages/packages timeout: 30 properties: target_file: analyze_legacy.yaml channel: "3.7.12" - name: Linux_android custom_package_tests master recipe: packages/packages timeout: 30 dimensions: kvm: "1" properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: linux_custom_package_tests.yaml # Pigeon tests need Andoid deps (thus the Linux_android base), emulator, # and clang-format. # web_benchmarks needs Chrome. dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "chrome_and_driver", "version": "version:114.0"} ] channel: master - name: Linux_android custom_package_tests stable recipe: packages/packages timeout: 30 dimensions: kvm: "1" properties: version_file: flutter_stable.version target_file: linux_custom_package_tests.yaml # See comments on 'master' version above. dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "chrome_and_driver", "version": "version:114.0"} ] channel: stable ### Android tasks ### - name: Linux_android android_build_all_packages master recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: android_build_all_packages.yaml channel: master # The legacy project build requires an older JDK. dependencies: >- [ {"dependency": "open_jdk", "version": "version:11"} ] - name: Linux_android android_build_all_packages stable recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" version_file: flutter_stable.version target_file: android_build_all_packages.yaml channel: stable # The legacy project build requires an older JDK. dependencies: >- [ {"dependency": "open_jdk", "version": "version:11"} ] - name: Linux_android android_platform_tests_shard_1 master recipe: packages/packages timeout: 60 properties: target_file: android_platform_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 0 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_2 master recipe: packages/packages timeout: 60 properties: target_file: android_platform_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 1 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_3 master recipe: packages/packages timeout: 60 properties: target_file: android_platform_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 2 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_4 master recipe: packages/packages timeout: 60 properties: target_file: android_platform_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 3 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_5 master recipe: packages/packages timeout: 60 properties: target_file: android_platform_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 4 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_6 master recipe: packages/packages timeout: 60 properties: target_file: android_platform_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 5 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_1 stable recipe: packages/packages presubmit: false timeout: 60 properties: target_file: android_platform_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 0 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_2 stable recipe: packages/packages presubmit: false timeout: 60 properties: target_file: android_platform_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 1 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_3 stable recipe: packages/packages presubmit: false timeout: 60 properties: target_file: android_platform_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 2 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_4 stable recipe: packages/packages presubmit: false timeout: 60 properties: target_file: android_platform_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 3 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_5 stable recipe: packages/packages presubmit: false timeout: 60 properties: target_file: android_platform_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 4 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] - name: Linux_android android_platform_tests_shard_6 stable recipe: packages/packages presubmit: false timeout: 60 properties: target_file: android_platform_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 5 --shardCount 6" dependencies: >- [ {"dependency": "android_virtual_device", "version": "33"} ] # Device versions of Android integration tests, run via FTL. # TODO(stuartmorgan): Revisit whether physical device tests are redundant once # we have more data about emulator tests; see # https://github.com/flutter/flutter/issues/131429. - name: Linux_android android_device_tests_shard_1 master recipe: packages/packages timeout: 60 properties: target_file: android_device_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 0 --shardCount 6" - name: Linux_android android_device_tests_shard_2 master recipe: packages/packages timeout: 60 properties: target_file: android_device_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 1 --shardCount 6" - name: Linux_android android_device_tests_shard_3 master recipe: packages/packages timeout: 60 properties: target_file: android_device_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 2 --shardCount 6" - name: Linux_android android_device_tests_shard_4 master recipe: packages/packages timeout: 60 properties: target_file: android_device_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 3 --shardCount 6" - name: Linux_android android_device_tests_shard_5 master recipe: packages/packages timeout: 60 properties: target_file: android_device_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 4 --shardCount 6" - name: Linux_android android_device_tests_shard_6 master recipe: packages/packages timeout: 60 properties: target_file: android_device_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 5 --shardCount 6" ### Web tasks ### - name: Linux_web web_build_all_packages master recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: web_build_all_packages.yaml channel: master - name: Linux_web web_build_all_packages stable recipe: packages/packages timeout: 30 properties: version_file: flutter_stable.version target_file: web_build_all_packages.yaml channel: stable - name: Linux_web web_platform_tests_shard_1 master recipe: packages/packages timeout: 60 properties: target_file: web_platform_tests.yaml version_file: flutter_master.version channel: master package_sharding: "--shardIndex 0 --shardCount 3" - name: Linux_web web_platform_tests_shard_2 master recipe: packages/packages timeout: 60 properties: target_file: web_platform_tests.yaml version_file: flutter_master.version channel: master package_sharding: "--shardIndex 1 --shardCount 3" - name: Linux_web web_platform_tests_shard_3 master recipe: packages/packages timeout: 60 properties: target_file: web_platform_tests.yaml version_file: flutter_master.version channel: master package_sharding: "--shardIndex 2 --shardCount 3" - name: Linux_web web_platform_tests_shard_1 stable recipe: packages/packages timeout: 60 properties: target_file: web_platform_tests.yaml version_file: flutter_stable.version channel: stable package_sharding: "--shardIndex 0 --shardCount 3" - name: Linux_web web_platform_tests_shard_2 stable recipe: packages/packages timeout: 60 properties: target_file: web_platform_tests.yaml version_file: flutter_stable.version channel: stable package_sharding: "--shardIndex 1 --shardCount 3" - name: Linux_web web_platform_tests_shard_3 stable recipe: packages/packages timeout: 60 properties: target_file: web_platform_tests.yaml version_file: flutter_stable.version channel: stable package_sharding: "--shardIndex 2 --shardCount 3" ### Linux desktop tasks - name: Linux_desktop build_all_packages master recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: linux_build_all_packages.yaml channel: master - name: Linux_desktop build_all_packages stable recipe: packages/packages timeout: 30 properties: version_file: flutter_stable.version target_file: linux_build_all_packages.yaml channel: stable - name: Linux_desktop platform_tests master recipe: packages/packages timeout: 30 properties: version_file: flutter_master.version target_file: linux_platform_tests.yaml channel: master # Install Chrome as a default handler for schemes for url_launcher. dependencies: >- [ {"dependency": "chrome_and_driver", "version": "version:114.0"} ] - name: Linux_desktop platform_tests stable recipe: packages/packages presubmit: false timeout: 30 properties: version_file: flutter_stable.version target_file: linux_platform_tests.yaml channel: stable # Install Chrome as a default handler for schemes for url_launcher. dependencies: >- [ {"dependency": "chrome_and_driver", "version": "version:114.0"} ] ### iOS+macOS tasks ### # TODO(stuartmorgan): Move this to ARM once google_maps_flutter has ARM # support. `pod lint` makes a synthetic target that doesn't respect the # pod's arch exclusions, so fails to build. - name: Mac_x64 check_podspecs recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: macos_check_podspecs.yaml ### macOS desktop tasks ### # macos-platform_tests builds all the packages on ARM, so this build is run # on Intel to give us build coverage of both host types. - name: Mac_x64 build_all_packages master recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: macos_build_all_packages.yaml channel: master - name: Mac_x64 build_all_packages stable recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" version_file: flutter_stable.version target_file: macos_build_all_packages.yaml channel: stable # TODO(stuartmorgan): Remove "- packages" from all task names once # flutter/plugins is merged into this repo and turned down; it's here only # because names must be unique across all flutter repositories. - name: Mac_arm64 macos_platform_tests master - packages recipe: packages/packages timeout: 60 properties: channel: master add_recipes_cq: "true" version_file: flutter_master.version target_file: macos_platform_tests.yaml - name: Mac_arm64 macos_platform_tests stable - packages recipe: packages/packages presubmit: false timeout: 60 properties: channel: stable add_recipes_cq: "true" version_file: flutter_stable.version target_file: macos_platform_tests.yaml - name: Mac_arm64 custom_package_tests master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: macos_custom_package_tests.yaml channel: master - name: Mac_arm64 custom_package_tests stable recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" version_file: flutter_stable.version target_file: macos_custom_package_tests.yaml channel: stable ### iOS tasks ### # ios_platform_tests builds all the packages on ARM, so this build is run # on Intel to give us build coverage of both host types. - name: Mac_x64 ios_build_all_packages master recipe: packages/packages timeout: 30 properties: channel: master add_recipes_cq: "true" version_file: flutter_master.version target_file: ios_build_all_packages.yaml - name: Mac_x64 ios_build_all_packages stable recipe: packages/packages timeout: 30 properties: channel: stable add_recipes_cq: "true" version_file: flutter_stable.version target_file: ios_build_all_packages.yaml - name: Mac_arm64 ios_platform_tests_shard_1 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: ios_platform_tests.yaml package_sharding: "--shardIndex 0 --shardCount 5" - name: Mac_arm64 ios_platform_tests_shard_2 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: ios_platform_tests.yaml package_sharding: "--shardIndex 1 --shardCount 5" - name: Mac_arm64 ios_platform_tests_shard_3 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: ios_platform_tests.yaml package_sharding: "--shardIndex 2 --shardCount 5" - name: Mac_arm64 ios_platform_tests_shard_4 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: ios_platform_tests.yaml package_sharding: "--shardIndex 3 --shardCount 5" - name: Mac_arm64 ios_platform_tests_shard_5 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" version_file: flutter_master.version target_file: ios_platform_tests.yaml package_sharding: "--shardIndex 4 --shardCount 5" # Don't run full platform tests on both channels in pre-submit. - name: Mac_arm64 ios_platform_tests_shard_1 stable recipe: packages/packages presubmit: false timeout: 60 properties: channel: stable add_recipes_cq: "true" version_file: flutter_stable.version target_file: ios_platform_tests.yaml package_sharding: "--shardIndex 0 --shardCount 5" - name: Mac_arm64 ios_platform_tests_shard_2 stable recipe: packages/packages presubmit: false timeout: 60 properties: channel: stable add_recipes_cq: "true" version_file: flutter_stable.version target_file: ios_platform_tests.yaml package_sharding: "--shardIndex 1 --shardCount 5" - name: Mac_arm64 ios_platform_tests_shard_3 stable recipe: packages/packages presubmit: false timeout: 60 properties: channel: stable add_recipes_cq: "true" version_file: flutter_stable.version target_file: ios_platform_tests.yaml package_sharding: "--shardIndex 2 --shardCount 5" - name: Mac_arm64 ios_platform_tests_shard_4 stable recipe: packages/packages presubmit: false timeout: 60 properties: channel: stable add_recipes_cq: "true" version_file: flutter_stable.version target_file: ios_platform_tests.yaml package_sharding: "--shardIndex 3 --shardCount 5" - name: Mac_arm64 ios_platform_tests_shard_5 stable recipe: packages/packages presubmit: false timeout: 60 properties: channel: stable add_recipes_cq: "true" version_file: flutter_stable.version target_file: ios_platform_tests.yaml package_sharding: "--shardIndex 4 --shardCount 5" ### Windows desktop tasks ### - name: Windows custom_package_tests master - packages recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" target_file: windows_custom_package_tests.yaml channel: master version_file: flutter_master.version dependencies: > [ {"dependency": "vs_build", "version": "version:vs2019"} ] - name: Windows dart_unit_tests_shard_1 master recipe: packages/packages timeout: 60 properties: target_file: windows_dart_unit_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 0 --shardCount 2" - name: Windows dart_unit_tests_shard_2 master recipe: packages/packages timeout: 60 properties: target_file: windows_dart_unit_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 1 --shardCount 2" - name: Windows win32-platform_tests_shard_1 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" target_file: windows_build_and_platform_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 0 --shardCount 2" dependencies: > [ {"dependency": "vs_build", "version": "version:vs2019"} ] - name: Windows win32-platform_tests_shard_2 master recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" target_file: windows_build_and_platform_tests.yaml channel: master version_file: flutter_master.version package_sharding: "--shardIndex 1 --shardCount 2" dependencies: > [ {"dependency": "vs_build", "version": "version:vs2019"} ] - name: Windows win32-platform_tests_shard_1 stable recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" target_file: windows_build_and_platform_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 0 --shardCount 2" dependencies: > [ {"dependency": "vs_build", "version": "version:vs2019"} ] - name: Windows win32-platform_tests_shard_2 stable recipe: packages/packages timeout: 60 properties: add_recipes_cq: "true" target_file: windows_build_and_platform_tests.yaml channel: stable version_file: flutter_stable.version package_sharding: "--shardIndex 1 --shardCount 2" dependencies: > [ {"dependency": "vs_build", "version": "version:vs2019"} ] - name: Windows windows-build_all_packages master recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" target_file: windows_build_all_packages.yaml channel: master version_file: flutter_master.version dependencies: > [ {"dependency": "vs_build", "version": "version:vs2019"} ] - name: Windows windows-build_all_packages stable recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" target_file: windows_build_all_packages.yaml channel: stable version_file: flutter_stable.version dependencies: > [ {"dependency": "vs_build", "version": "version:vs2019"} ] - name: Windows repo_tools_tests recipe: packages/packages timeout: 30 properties: add_recipes_cq: "true" target_file: repo_tools_tests.yaml channel: master version_file: flutter_master.version - name: Linux ci_yaml packages roller recipe: infra/ci_yaml timeout: 30 runIf: - .ci.yaml properties: backfill: "false"