# 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
  - flutter-\d+\.\d+-candidate\.\d+
  - fuchsia_r\d+[a-z]*

platform_properties:
  linux:
    properties:
      build_host: "false"
      build_fuchsia: "false"
      build_android_debug: "false"
      build_android_aot: "false"
      build_android_vulkan: "false"
      build_ios: "false"
      build_android_jit_release: "false"
      gcs_goldens_bucket: ""
      ios_debug: "false"
      ios_profile: "false"
      ios_release: "false"
      # CIPD flutter/java/openjdk/$platform
      dependencies: >-
        [
          {"dependency": "open_jdk", "version": "version:11"},
          {"dependency": "gradle_cache", "version": "none"}
        ]
      device_type: none
      os: Ubuntu
      cores: "8"
  mac:
    properties:
      build_host: "false"
      build_fuchsia: "false"
      build_android_debug: "false"
      build_android_aot: "false"
      build_android_vulkan: "false"
      build_ios: "false"
      build_android_jit_release: "false"
      gcs_goldens_bucket: ""
      ios_debug: "false"
      ios_profile: "false"
      ios_release: "false"
      # CIPD flutter/java/openjdk/$platform
      dependencies: >-
        [
          {"dependency": "open_jdk", "version": "version:11"}
        ]
      device_type: none
      cpu: x86
      os: Mac-12
      xcode: 14e222b
    dimensions:
      mac_model: "Macmini8,1|Macmini9,1"
  windows:
    properties:
      build_host: "false"
      build_fuchsia: "false"
      build_android_debug: "false"
      build_android_aot: "false"
      build_android_vulkan: "false"
      build_ios: "false"
      build_android_jit_release: "false"
      gcs_goldens_bucket: ""
      ios_debug: "false"
      ios_profile: "false"
      ios_release: "false"
      # CIPD flutter/java/openjdk/$platform
      dependencies: >-
        [
          {"dependency": "open_jdk", "version": "version:11"}
        ]
      device_type: none
      os: Windows-10

targets:
  - name: Linux Android AOT Engine
    recipe: engine/engine
    bringup: true
    properties:
      add_recipes_cq: "true"
      build_android_aot: "true"
      android_sdk_license: \n24333f8a63b6825ea9c5514f83c2829b004d1fee
      android_sdk_preview_license: \n84831b9409646a918e30573bab4c9c91346d8abd
    timeout: 60

  - name: Linux Android Debug Engine
    recipe: engine/engine
    bringup: true
    properties:
      add_recipes_cq: "true"
      build_android_debug: "true"
      build_android_jit_release: "true"
      build_android_vulkan: "true"
      android_sdk_license: \n24333f8a63b6825ea9c5514f83c2829b004d1fee
      android_sdk_preview_license: \n84831b9409646a918e30573bab4c9c91346d8abd
    timeout: 60

  - name: Linux Android Emulator Tests
    recipe: engine/scenarios
    enabled_branches:
      - main
      - master
    properties:
      dependencies: >-
        [
          {"dependency": "android_virtual_device", "version": "31"},
          {"dependency": "goldctl", "version": "git_revision:f808dcff91b221ae313e540c09d79696cd08b8de"}
        ]
      upload_packages: "true"
      clobber: "true"
    timeout: 60
    runIf:
      - DEPS
      - .ci.yaml
      - testing/**
      - shell/platform/android/**

  - name: Linux Benchmarks
    enabled_branches:
      - main
      - master
    recipe: engine/engine_metrics
    presubmit: false
    properties:
      build_host: "true"
      upload_metrics: "true"
    timeout: 60

  - name: Linux Benchmarks (no-upload)
    recipe: engine/engine_metrics
    properties:
      build_host: "true"
      upload_metrics: "false"
    timeout: 60

  - name: Linux Fuchsia
    recipe: engine/engine
    properties:
      add_recipes_cq: "true"
      build_fuchsia: "true"
      fuchsia_ctl_version: version:0.0.27
      # ensure files from pre-production Fuchsia SDK tests are purged from cache
      clobber: "true"
    timeout: 90

  - name: Linux Fuchsia FEMU
    recipe: engine/femu_test
    properties:
      add_recipes_cq: "true"
      build_fuchsia: "true"
      fuchsia_ctl_version: version:0.0.27
      # ensure files from pre-production Fuchsia SDK tests are purged from cache
      clobber: "true"
      emulator_arch: "x64"
      enable_cso: "true"
    timeout: 60

  - name: Linux Fuchsia arm64 FEMU
    recipe: engine/femu_test
    properties:
      add_recipes_cq: "true"
      build_fuchsia: "true"
      fuchsia_ctl_version: version:0.0.27
      # ensure files from pre-production Fuchsia SDK tests are purged from cache
      clobber: "true"
      emulator_arch: "arm64"
      enable_cso: "true"
    timeout: 60
    bringup: true

  - name: Linux Framework Smoke Tests
    recipe: engine/framework_smoke
    enabled_branches:
      - main
      - master
    timeout: 60

  - name: Linux Host Engine
    recipe: engine/engine
    bringup: true
    properties:
      gclient_variables: >-
        {"download_emsdk": true}
      add_recipes_cq: "true"
      build_host: "true"
      cores: "32"
    timeout: 60

  - name: Linux Unopt
    bringup: true
    recipe: engine/engine_unopt
    properties:
      add_recipes_cq: "true"
      clobber: "true"
    timeout: 60

  - name: Linux License
    bringup: true
    recipe: engine/engine_license
    properties:
      add_recipes_cq: "true"
      clobber: "true"
    timeout: 60

  - name: Linux Host clang-tidy
    recipe: engine/engine_lint
    properties:
      cores: "32"
      lint_android: "false"
      lint_host: "true"
    timeout: 60
    runIf:
      - DEPS
      - .ci.yaml
      - tools/**
      - ci/**
      - "**.h"
      - "**.c"
      - "**.cc"
      - "**.fbs"
      - "**.frag"
      - "**.vert"

  - name: Linux Android clang-tidy
    recipe: engine/engine_lint
    properties:
      cores: "32"
      lint_android: "true"
      lint_host: "false"
    timeout: 60
    runIf:
      - DEPS
      - .ci.yaml
      - tools/**
      - ci/**
      - "**.h"
      - "**.c"
      - "**.cc"
      - "**.fbs"
      - "**.frag"
      - "**.vert"
      - "**.py" # Run pylint on the fastest clang-tidy builder.

  - name: Linux Arm Host Engine
    bringup: true
    recipe: engine/engine_arm
    properties:
      add_recipes_cq: "true"
      build_host: "true"
    timeout: 90

  - name: Linux linux_fuchsia
    bringup: true
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: linux_fuchsia
    drone_dimensions:
      - os=Linux

  - name: Linux linux_clang_tidy
    bringup: true
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: linux_clang_tidy

  - name: Linux linux_arm_host_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: linux_arm_host_engine
    drone_dimensions:
      - os=Linux

  - name: Linux linux_host_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: linux_host_engine
    drone_dimensions:
      - os=Linux

  - name: Linux linux_host_desktop_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: linux_host_desktop_engine
    drone_dimensions:
      - os=Linux

  - name: Linux linux_android_aot_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: linux_android_aot_engine
    drone_dimensions:
      - os=Linux

  - name: Linux linux_android_debug_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: linux_android_debug_engine
    drone_dimensions:
      - os=Linux

  - name: Linux linux_license
    recipe: engine_v2/builder
    timeout: 60
    properties:
      config_name: linux_license
      clobber: "true"

  - name: Linux linux_web_engine
    recipe: engine_v2/engine_v2
    timeout: 70
    properties:
      release_build: "true"
      config_name: linux_web_engine
    drone_dimensions:
      - os=Linux

  - name: Linux linux_unopt
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      config_name: linux_unopt

  - name: Linux Web Framework tests
    recipe: engine/web_engine_framework
    enabled_branches:
      - main
      - master
    properties:
      add_recipes_cq: "true"
      cores: "32"
      gclient_variables: >-
        {"download_emsdk": true}
      dependencies: >-
        [
          {"dependency": "chrome_and_driver", "version": "version:111.0a"},
          {"dependency": "curl", "version": "version:7.64.0"}
        ]
      framework: "true"
      no_goma: "true"
      drone_dimensions: >
        ["device_type=none", "os=Linux"]
      shard: web_tests
      subshards: >-
              ["0", "1", "2", "3", "4", "5", "6", "7_last"]
    timeout: 60
    runIf:
      - DEPS
      - .ci.yaml
      - lib/web_ui/**
      - web_sdk/**
      - tools/**
      - ci/**
      - flutter_frontend_server/**

  - name: Mac Android AOT Engine
    bringup: true
    recipe: engine/engine
    properties:
      android_sdk_license: \n24333f8a63b6825ea9c5514f83c2829b004d1fee
      android_sdk_preview_license: \n84831b9409646a918e30573bab4c9c91346d8abd
      build_android_aot: "true"
    timeout: 60

  - name: Mac Host Engine
    bringup: true
    recipe: engine/engine
    properties:
      gclient_variables: >-
        {"download_emsdk": true}
      add_recipes_cq: "true"
      build_host: "true"
    timeout: 75

  - name: Linux mac_android_aot_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: mac_android_aot_engine
    drone_dimensions:
      - os=Linux

  - name: Mac mac_clang_tidy
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      config_name: mac_clang_tidy
    runIf:
      - DEPS
      - .ci.yaml
      - tools/**
      - ci/**
      - "**.h"
      - "**.c"
      - "**.cc"
      - "**.fbs"
      - "**.frag"
      - "**.vert"
      - "**.m"
      - "**.mm"

  - name: Mac mac_host_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      cpu: arm64
      config_name: mac_host_engine
      dependencies: >-
        [
          {"dependency": "goldctl", "version": "git_revision:f808dcff91b221ae313e540c09d79696cd08b8de"}
        ]
      $flutter/osx_sdk : >-
        { "sdk_version": "14e222b" }
    drone_dimensions:
      - os=Mac-12

  - name: Linux mac_unopt
    recipe: engine_v2/engine_v2
    properties:
      config_name: mac_unopt
      add_recipes_cq: "true"
    timeout: 60

  - name: Mac Unopt
    bringup: true
    recipe: engine/engine_unopt
    properties:
      add_recipes_cq: "true"
      runtime_versions: >-
        [
          "ios-16-4_14e222b",
          "ios-16-2_14c18"
        ]
    timeout: 75

  - name: Mac Host clang-tidy
    bringup: true
    recipe: engine/engine_lint
    properties:
      cpu: arm64
      lint_host: "true"
      lint_ios: "false"
    timeout: 120
    runIf:
      - DEPS
      - .ci.yaml
      - tools/**
      - ci/**
      - "**.h"
      - "**.c"
      - "**.cc"
      - "**.fbs"
      - "**.frag"
      - "**.vert"
      - "**.m"
      - "**.mm"

  - name: Mac iOS clang-tidy
    bringup: true
    recipe: engine/engine_lint
    properties:
      cpu: arm64
      lint_host: "false"
      lint_ios: "true"
    timeout: 120
    runIf:
      - DEPS
      - .ci.yaml
      - tools/**
      - ci/**
      - "**.h"
      - "**.c"
      - "**.cc"
      - "**.fbs"
      - "**.frag"
      - "**.vert"
      - "**.m"
      - "**.mm"

  - name: Mac iOS Engine
    bringup: true
    recipe: engine/engine
    properties:
      add_recipes_cq: "true"
      build_ios: "true"
      ios_debug: "true"
    timeout: 60

  - name: Mac mac_ios_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: mac_ios_engine
      $flutter/osx_sdk : >-
        { "sdk_version": "14e222b" }
      dependencies: >-
        [
          {"dependency": "jazzy", "version": "0.14.1"}
        ]
    drone_dimensions:
      - os=Mac-12

  - name: Mac impeller-cmake-example
    bringup: true
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      cpu: arm64
      config_name: mac_impeller_cmake_example

  - name: Windows Android AOT Engine
    bringup: true
    recipe: engine/engine
    properties:
      build_android_aot: "true"
      android_sdk_license: \n24333f8a63b6825ea9c5514f83c2829b004d1fee
      android_sdk_preview_license: \n84831b9409646a918e30573bab4c9c91346d8abd
    timeout: 60

  - name: Windows Host Engine
    bringup: true
    recipe: engine/engine
    timeout: 60
    properties:
      gclient_variables: >-
        {"download_emsdk": true}
      add_recipes_cq: "true"
      build_host: "true"

  - name: Windows windows_android_aot_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: windows_android_aot_engine
    drone_dimensions:
      - os=Windows

  - name: Windows windows_host_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: windows_host_engine
    drone_dimensions:
      - os=Windows

  - name: Windows windows_arm_host_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    enabled_branches:
      # Don't run this on release branches
      - main
    properties:
      release_build: "true"
      config_name: windows_arm_host_engine
    drone_dimensions:
      - os=Windows

  - name: Windows windows_unopt
    recipe: engine_v2/builder
    timeout: 60
    properties:
      config_name: windows_unopt

  - name: Windows Unopt
    bringup: true
    recipe: engine/engine_unopt
    properties:
      add_recipes_cq: "true"
    timeout: 75

  - name: Mac iOS Engine Profile
    bringup: true
    recipe: engine/engine
    properties:
      build_ios: "true"
      ios_profile: "true"
    timeout: 90
    runIf:
      - DEPS
      - .ci.yaml
      - ci/**

  - name: Mac iOS Engine Release
    bringup: true
    recipe: engine/engine
    properties:
      build_ios: "true"
      ios_release: "true"
    timeout: 90
    runIf:
      - DEPS
      - .ci.yaml
      - ci/**

  - name: Linux ci_yaml engine roller
    bringup: true
    recipe: infra/ci_yaml
