# 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]*
  - flutter-test-golden-1

platform_properties:
  linux:
    properties:
      # 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:
      # CIPD flutter/java/openjdk/$platform
      dependencies: >-
        [
          {"dependency": "open_jdk", "version": "version:17"}
        ]
      device_type: none
      os: Mac-13
      $flutter/osx_sdk : >-
        {
          "sdk_version": "15a240d"
        }
  windows:
    properties:
      # CIPD flutter/java/openjdk/$platform
      dependencies: >-
        [
          {"dependency": "open_jdk", "version": "version:17"}
        ]
      device_type: none
      os: Windows-10

# The current android emulator config names can be found here:
# https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/android/avd/proto
# You may use those names for the android_virtual_device version.
targets:
  - name: Linux local_engine_builds
    enabled_branches:
      - main
    recipe: engine_v2/engine_v2
    properties:
      config_name: local_engine

  - name: Linux linux_android_emulator_tests
    enabled_branches:
      - main
    recipe: engine_v2/engine_v2
    properties:
      config_name: linux_android_emulator
      dependencies: >-
        [
          {"dependency": "goldctl", "version": "git_revision:720a542f6fe4f92922c3b8f0fdcc4d2ac6bb83cd"}
        ]
    timeout: 90
    runIf:
      - .ci.yaml
      - ci/builders/linux_android_emulator.json
      - DEPS
      - lib/ui/**
      - shell/platform/android/**
      - testing/scenario_app/**
      - testing/skia_gold_client/**

  - name: Linux linux_android_emulator_skia_tests
    enabled_branches:
      - main
    recipe: engine_v2/engine_v2
    properties:
      config_name: linux_android_emulator_skia
      dependencies: >-
        [
          {"dependency": "goldctl", "version": "git_revision:720a542f6fe4f92922c3b8f0fdcc4d2ac6bb83cd"}
        ]
    timeout: 90
    runIf:
      - .ci.yaml
      - ci/builders/linux_android_emulator.json
      - DEPS
      - lib/ui/**
      - shell/platform/android/**
      - testing/scenario_app/**
      - testing/skia_gold_client/**

  - name: Linux builder_cache
    enabled_branches:
      - main
    recipe: engine_v2/cache
    presubmit: false
    properties:
      cache_name: "builder"
      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_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_paths: >-
        [
          "builder",
          "git"
        ]
      ignore_cache_paths: >-
        [
          "builder/src/flutter/prebuilts/SDKs",
          "builder/src/flutter/prebuilts/Library"
        ]
      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 linux_fuchsia
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: linux_fuchsia
    # Do not remove(https://github.com/flutter/flutter/issues/144644)
    # Scheduler will fail to get the platform
    drone_dimensions:
      - os=Linux
    dimensions:
      kvm: "1"
    # 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_clang_tidy
    recipe: engine_v2/engine_v2
    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_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
    runIf:
      - DEPS
      - .ci.yaml
      - lib/web_ui/**
      - web_sdk/**
      - tools/**
      - ci/**
      - flutter_frontend_server/**

  - name: Linux clangd
    recipe: engine_v2/engine_v2
    properties:
      config_name: linux_unopt_debug_no_rbe

  - 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"}
        ]
      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: 240
    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
    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_host_engine
    recipe: engine_v2/engine_v2
    timeout: 240
    properties:
      add_recipes_cq: "true"
      release_build: "true"
      cpu: arm64
      config_name: mac_host_engine
      dependencies: >-
        [
          {"dependency": "goldctl", "version": "git_revision:720a542f6fe4f92922c3b8f0fdcc4d2ac6bb83cd"}
        ]
      $flutter/osx_sdk : >-
        {
          "sdk_version": "15a240d"
        }
    drone_dimensions:
      - os=Mac-13

  - name: Linux mac_clangd
    recipe: engine_v2/engine_v2
    # Avoid using a Mac orchestrator to save ~5 minutes of Mac host time.
    drone_dimensions:
      - os=Linux
    properties:
      config_name: mac_unopt_debug_no_rbe

  - name: Mac 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: 240
    properties:
      add_recipes_cq: "true"
      release_build: "true"
      config_name: mac_ios_engine
      $flutter/osx_sdk : >-
        {
          "sdk_version": "15a240d"
        }
    drone_dimensions:
      - os=Mac-13
      - 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"
