# 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:17"},
          {"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:17"}
        ]
      device_type: none
      cpu: x86
      os: Mac-12
      # TODO(vashworth): Remove specific toolchain_ver once https://github.com/flutter/flutter/issues/138109 is resolved.
      $flutter/osx_sdk : >-
        {
          "sdk_version": "14e300c",
          "toolchain_ver_arm": "JiMOaZvCH66lnGWMJdLScE-7lkUnKaw3COdWwqXmjWEC",
          "toolchain_ver_intel": "Zp2HmSx7_-pu-yHqYqzoEpo0JRwNZGGwSj5V1SnLFmoC"
        }
    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:17"}
        ]
      device_type: none
      os: Windows-10

targets:
  - name: Linux linux_android_emulator_tests
    enabled_branches:
      - main
    recipe: engine_v2/engine_v2
    bringup: true
    properties:
      config_name: linux_android_emulator
    timeout: 60
    runIf:
      - .ci.yaml
      - lib/ui/**
      - shell/platform/android/**

  - name: Linux builder_cache
    enabled_branches:
      - main
    recipe: engine_v2/cache
    presubmit: false
    properties:
      cache_name: "builder"
      cache_root: "cache"
      cache_paths: >-
        [
          "builder",
          "git"
        ]
      gclient_variables: >-
        {
          "download_emsdk": "true",
          "download_android_deps": "true"
        }
    timeout: 60

  - name: Windows builder_cache
    enabled_branches:
      - main
    recipe: engine_v2/cache
    presubmit: false
    properties:
      cache_name: "builder"
      cache_root: "cache"
      cache_paths: >-
        [
          "builder",
          "git"
        ]
      gclient_variables: >-
        {
          "download_android_deps": "true"
        }
    timeout: 60

  - name: Mac builder_cache
    enabled_branches:
      - main
    recipe: engine_v2/cache
    presubmit: false
    properties:
      cache_name: "builder"
      cache_root: "cache"
      cache_paths: >-
        [
          "builder",
          "git"
        ]
      gclient_variables: >-
        {
          "download_android_deps": "true"
        }
    timeout: 60

  - name: Linux linux_benchmarks
    enabled_branches:
      - main
    recipe: engine_v2/builder
    presubmit: false
    properties:
      config_name: linux_benchmarks
    timeout: 60

  - name: Linux Fuchsia
    bringup: true
    recipe: engine/engine
    properties:
      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
    # TODO(https://github.com/flutter/flutter/issues/138559): Re-enable/delete.
    # runIfNot:
    #   - lib/web_ui/**
    #   - shell/platform/android/**
    #   - shell/platform/darwin/**
    #   - shell/platform/glfw/**
    #   - shell/platform/linux/**
    #   - shell/platform/windows/**
    #   - web_sdk/**

  - 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
    # TODO(https://github.com/flutter/flutter/issues/138559): Re-enable/delete.
    # runIfNot:
    #   - lib/web_ui/**
    #   - shell/platform/android/**
    #   - shell/platform/darwin/**
    #   - shell/platform/glfw/**
    #   - shell/platform/linux/**
    #   - shell/platform/windows/**
    #   - web_sdk/**

  - name: Linux Fuchsia arm64 FEMU
    recipe: engine/femu_test
    properties:
      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
    # TODO(https://github.com/flutter/flutter/issues/138559): Re-enable/delete.
    # runIfNot:
    #   - lib/web_ui/**
    #   - shell/platform/android/**
    #   - shell/platform/darwin/**
    #   - shell/platform/glfw/**
    #   - shell/platform/linux/**
    #   - shell/platform/windows/**
    #   - web_sdk/**

  - name: Linux linux_fuchsia
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: linux_fuchsia
    drone_dimensions:
      - os=Linux
    # TODO(https://github.com/flutter/flutter/issues/138559): Re-enable/delete.
    # runIfNot:
    #   - lib/web_ui/**
    #   - shell/platform/android/**
    #   - shell/platform/darwin/**
    #   - shell/platform/glfw/**
    #   - shell/platform/linux/**
    #   - shell/platform/windows/**
    #   - web_sdk/**

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

  - name: Linux linux_clang_tidy
    recipe: engine_v2/engine_v2
    presubmit: false
    timeout: 120
    properties:
      config_name: linux_clang_tidy
    runIf:
      - DEPS
      - .ci.yaml
      - tools/clang_tidy/**
      - ci/builders/**
      - ci/clang_tidy.sh
      - "**.h"
      - "**.c"
      - "**.cc"
      - "**.fbs"
      - "**.frag"
      - "**.vert"

  - name: Linux linux_clang_tidy_presubmit
    recipe: engine_v2/engine_v2
    timeout: 120
    properties:
      config_name: linux_clang_tidy_presubmit
    runIf:
      - DEPS
      - .ci.yaml
      - tools/clang_tidy/**
      - ci/builders/**
      - ci/clang_tidy.sh
      - "**.h"
      - "**.c"
      - "**.cc"
      - "**.fbs"
      - "**.frag"
      - "**.vert"

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

  - name: Linux linux_host_engine
    recipe: engine_v2/engine_v2
    timeout: 120
    properties:
      add_recipes_cq: "true"
      release_build: "true"
      config_name: linux_host_engine
      dependencies: >-
        [
          {"dependency": "goldctl", "version": "git_revision:720a542f6fe4f92922c3b8f0fdcc4d2ac6bb83cd"}
        ]
    drone_dimensions:
      - os=Linux

  - name: Linux linux_host_desktop_engine
    recipe: engine_v2/engine_v2
    timeout: 120
    properties:
      add_recipes_cq: "true"
      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: 120
    properties:
      add_recipes_cq: "true"
      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: 120
    properties:
      add_recipes_cq: "true"
      release_build: "true"
      config_name: linux_android_debug_engine
    drone_dimensions:
      - os=Linux

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

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

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

  - name: Linux Web Framework tests
    recipe: engine/web_engine_framework
    enabled_branches:
      - main
    properties:
      add_recipes_cq: "true"
      cores: "32"
      gclient_variables: >-
        {"download_emsdk": true}
      dependencies: >-
        [
          {"dependency": "chrome_and_driver", "version": "version:119.0.6045.9"},
          {"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: Linux mac_android_aot_engine
    recipe: engine_v2/engine_v2
    timeout: 120
    properties:
      add_recipes_cq: "true"
      release_build: "true"
      config_name: mac_android_aot_engine
    drone_dimensions:
      - os=Linux

  - name: Mac mac_clang_tidy
    recipe: engine_v2/engine_v2
    presubmit: false
    timeout: 120
    properties:
      config_name: mac_clang_tidy
    runIf:
      - DEPS
      - .ci.yaml
      - tools/clang_tidy/**
      - ci/builders/**
      - ci/clang_tidy.sh
      - "**.h"
      - "**.c"
      - "**.cc"
      - "**.fbs"
      - "**.frag"
      - "**.vert"
      - "**.m"
      - "**.mm"

  - name: Mac mac_clang_tidy_presubmit
    recipe: engine_v2/engine_v2
    timeout: 120
    properties:
      config_name: mac_clang_tidy_presubmit
    runIf:
      - DEPS
      - .ci.yaml
      - tools/clang_tidy/**
      - ci/builders/**
      - ci/clang_tidy.sh
      - "**.h"
      - "**.c"
      - "**.cc"
      - "**.fbs"
      - "**.frag"
      - "**.vert"
      - "**.m"
      - "**.mm"

  - name: Mac mac_host_engine
    recipe: engine_v2/engine_v2
    timeout: 120
    properties:
      add_recipes_cq: "true"
      release_build: "true"
      cpu: arm64
      config_name: mac_host_engine
      dependencies: >-
        [
          {"dependency": "goldctl", "version": "git_revision:720a542f6fe4f92922c3b8f0fdcc4d2ac6bb83cd"}
        ]
      # TODO(vashworth): Remove specific toolchain_ver once https://github.com/flutter/flutter/issues/138109 is resolved.
      $flutter/osx_sdk : >-
        {
          "sdk_version": "14e300c",
          "toolchain_ver_arm": "JiMOaZvCH66lnGWMJdLScE-7lkUnKaw3COdWwqXmjWEC",
          "toolchain_ver_intel": "Zp2HmSx7_-pu-yHqYqzoEpo0JRwNZGGwSj5V1SnLFmoC"
        }
    drone_dimensions:
      - os=Mac-12

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

  - name: Mac mac_ios_engine
    recipe: engine_v2/engine_v2
    timeout: 120
    properties:
      add_recipes_cq: "true"
      release_build: "true"
      config_name: mac_ios_engine
      # TODO(vashworth): Remove specific toolchain_ver once https://github.com/flutter/flutter/issues/138109 is resolved.
      $flutter/osx_sdk : >-
        {
          "sdk_version": "14e300c",
          "toolchain_ver_arm": "JiMOaZvCH66lnGWMJdLScE-7lkUnKaw3COdWwqXmjWEC",
          "toolchain_ver_intel": "Zp2HmSx7_-pu-yHqYqzoEpo0JRwNZGGwSj5V1SnLFmoC"
        }
    drone_dimensions:
      - os=Mac-12
      - cpu=x86

  - 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 windows_android_aot_engine
    recipe: engine_v2/engine_v2
    timeout: 120
    properties:
      add_recipes_cq: "true"
      release_build: "true"
      config_name: windows_android_aot_engine
    drone_dimensions:
      - os=Windows

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

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

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

  - name: Linux ci_yaml engine roller
    bringup: true
    recipe: infra/ci_yaml
    properties:
      backfill: "false"
