# 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:
      fuchsia_ctl_version: ""
      os: Linux
  windows:
    properties:
      dependencies: >
        [
          {"dependency": "certs"}
        ]
      device_type: none
      os: Windows

targets:
  - name: Windows custom_package_tests master - packages
    recipe: packages/packages
    timeout: 30
    properties:
      add_recipes_cq: "true"
      target_file: windows_custom_package_tests.yaml
      channel: master
      version_file: flutter_master.version
      dependencies: >
        [
          {"dependency": "vs_build"}
        ]

  - name: Windows dart_unit_tests master - packages
    recipe: packages/packages
    timeout: 30
    properties:
      add_recipes_cq: "true"
      target_file: windows_dart_unit_tests.yaml
      channel: master
      version_file: flutter_master.version
      dependencies: >
        [
          {"dependency": "vs_build"}
        ]

  - name: Windows win32-platform_tests master - packages
    recipe: packages/packages
    timeout: 30
    properties:
      add_recipes_cq: "true"
      target_file: windows_build_and_platform_tests.yaml
      channel: master
      version_file: flutter_master.version
      dependencies: >
        [
          {"dependency": "vs_build"}
        ]

  - name: Windows win32-platform_tests stable - packages
    recipe: packages/packages
    timeout: 30
    properties:
      add_recipes_cq: "true"
      target_file: windows_build_and_platform_tests.yaml
      channel: stable
      dependencies: >
        [
          {"dependency": "vs_build"}
        ]

  - name: Linux fuchsia_ctl
    postsubmit: false
    recipe: fuchsia_ctl
    timeout: 90
    properties:
      add_recipes_cq: "true"

  - name: Linux ci_yaml packages roller
    recipe: infra/ci_yaml
