# 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:
      caches: >-
        [
        ]
      dependencies: >
        [
          {"dependency": "curl"}
        ]
      device_type: none
      os: Linux
  windows:
    properties:
      caches: >-
        [
          {"name": "vsbuild", "path": "vsbuild"},
          {"name": "pub_cache", "path": ".pub-cache"}
        ]
      dependencies: >
        [
          {"dependency": "certs"}
        ]
      device_type: none
      os: Windows

targets:
  - name: Windows win32-platform_tests master
    recipe: plugins/plugins
    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"}
        ]
    scheduler: luci

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

  - name: Windows windows-build_all_plugins master
    recipe: plugins/plugins
    timeout: 30
    properties:
      add_recipes_cq: "true"
      target_file: build_all_plugins.yaml
      channel: master
      version_file: flutter_master.version
      dependencies: >
        [
          {"dependency": "vs_build"}
        ]
    scheduler: luci

  - name: Windows windows-build_all_plugins stable
    recipe: plugins/plugins
    timeout: 30
    properties:
      add_recipes_cq: "true"
      target_file: build_all_plugins.yaml
      channel: stable
      dependencies: >
        [
          {"dependency": "vs_build"}
        ]
    scheduler: luci

  - name: Windows uwp-platform_tests master
    recipe: plugins/plugins
    timeout: 30
    properties:
      add_recipes_cq: "true"
      target_file: uwp_build_and_platform_tests.yaml
      channel: master
      version_file: flutter_master.version
      dependencies: >
        [
          {"dependency": "vs_build"}
        ]
    scheduler: luci

  - name: Windows plugin_tools_tests
    recipe: plugins/plugins
    timeout: 30
    properties:
      add_recipes_cq: "true"
      target_file: plugin_tools_tests.yaml
      channel: master
      version_file: flutter_master.version
    scheduler: luci

  - name: Linux ci_yaml plugins roller
    recipe: infra/ci_yaml
    timeout: 30
    scheduler: luci
    runIf:
      - .ci.yaml
