# 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+

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"
      no_bitcode: "false"
      # CIPD flutter_internal/java/openjdk/$platform
      dependencies: >-
        [
          {"dependency": "open_jdk", "version": "version:1.8.0u202-b08"},
          {"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"
      no_bitcode: "false"
      # CIPD flutter_internal/java/openjdk/$platform
      dependencies: >-
        [
          {"dependency": "open_jdk", "version": "version:1.8.0u202-b08"}
        ]
      device_type: none
      cpu: x86
      os: Mac-12
      xcode: 14a5294e # xcode 14.0 beta 5
  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"
      no_bitcode: "false"
      # CIPD flutter_internal/java/openjdk/$platform
      dependencies: >-
        [
          {"dependency": "open_jdk", "version": "version:1.8.0u202-b08"}
        ]
      device_type: none
      os: Windows-10

targets:
  - name: Linux Android AOT Engine
    recipe: engine/engine
    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
    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:3a77d0b12c697a840ca0c7705208e8622dc94603"}
        ]
      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"
    timeout: 60

  - name: Linux Fuchsia arm64 FEMU
    recipe: engine/femu_test
    bringup: true
    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"
    timeout: 60

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

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

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

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

  - name: Linux Host clang-tidy
    recipe: engine/engine_lint
    properties:
      add_recipes_cq: "true"
      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:
      add_recipes_cq: "true"
      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
    recipe: engine/engine_arm
    properties:
      add_recipes_cq: "true"
      build_host: "true"
    timeout: 90

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

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

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

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

  - name: Linux Web Engine
    recipe: engine/web_engine
    properties:
      add_recipes_cq: "true"
      cores: "32"
      gcs_goldens_bucket: flutter_logs
      gclient_variables: >-
        {"download_emsdk": true}
      dependencies: >-
        [
          {"dependency": "chrome_and_driver", "version": "version:107.0"},
          {"dependency": "firefox", "version": "version:106.0"},
          {"dependency": "goldctl", "version": "git_revision:3a77d0b12c697a840ca0c7705208e8622dc94603"}
        ]
    timeout: 60
    runIf:
      - DEPS
      - .ci.yaml
      - lib/web_ui/**
      - web_sdk/**
      - tools/**
      - ci/**
      - flutter_frontend_server/**

  - name: Linux Web Framework tests
    recipe: engine/web_engine_framework
    enabled_branches:
      - main
      - master
    properties:
      add_recipes_cq: "true"
      dependencies: >-
        [
          {"dependency": "chrome_and_driver", "version": "version:96.2"},
          {"dependency": "curl", "version": "version:7.64.0"}
        ]
      framework: "true"
      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
    recipe: engine/engine
    properties:
      android_sdk_license: \n24333f8a63b6825ea9c5514f83c2829b004d1fee
      android_sdk_preview_license: \n84831b9409646a918e30573bab4c9c91346d8abd
      build_android_aot: "true"
      jazzy_version: "0.14.1"
    timeout: 60

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

  - name: Mac mac_android_aot_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      config_name: mac_android_aot_engine
      $flutter/osx_sdk : >-
        { "sdk_version": "14a5294e" }

  - name: Mac mac_host_engine
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      release_build: "true"
      config_name: mac_host_engine
      $flutter/osx_sdk : >-
        { "sdk_version": "14a5294e" }

  - name: Mac Unopt
    recipe: engine/engine_unopt
    properties:
      add_recipes_cq: "true"
      jazzy_version: "0.14.1"
      runtime_versions: >-
        [
          "ios-13-0",
          "ios-16-0_14a5294e"
        ]
    timeout: 75

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

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

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

  - name: Mac Web Engine
    recipe: engine/web_engine
    properties:
      add_recipes_cq: "true"
      gcs_goldens_bucket: flutter_logs
      gclient_variables: >-
        {"download_emsdk": true}
      dependencies: >-
        [
          {"dependency": "goldctl", "version": "git_revision:3a77d0b12c697a840ca0c7705208e8622dc94603"}
        ]
    timeout: 60
    runIf:
      - DEPS
      - .ci.yaml
      - lib/web_ui/**
      - web_sdk/**
      - tools/**
      - ci/**
      - flutter_frontend_server/**

  - 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": "14a5294e" }
      dependencies: >-
        [
          {"dependency": "jazzy", "version": "0.14.1"}
        ]

  - name:  Mac mac_ios_engine_profile
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      config_name: mac_ios_engine_profile
      $flutter/osx_sdk : >-
        { "sdk_version": "14a5294e" }

  - name:  Mac mac_ios_engine_release
    recipe: engine_v2/engine_v2
    timeout: 60
    properties:
      config_name: mac_ios_engine_release
      $flutter/osx_sdk : >-
        { "sdk_version": "14a5294e" }

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

  - name: Windows Host Engine
    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

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

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

  - name: Windows Web Engine
    recipe: engine/web_engine
    properties:
      gclient_variables: >-
        {"download_emsdk": true}
      gcs_goldens_bucket: flutter_logs
      dependencies: >-
        [
          {"dependency": "chrome_and_driver", "version": "version:107.0"}
        ]
    timeout: 60
    runIf:
      - DEPS
      - .ci.yaml
      - lib/web_ui/**
      - web_sdk/**

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

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

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