# 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:
      os: Linux
  mac:
    properties:
      os: Mac-12
      cpu: x86
  windows:
    properties:
      os: Windows

targets:
  - name: Linux Cocoon
    recipe: cocoon/cocoon
    properties:
      add_recipes_cq: "true"

  - name: Linux device_doctor
    postsubmit: false
    recipe: cocoon/device_doctor
    properties:
      add_recipes_cq: "true"
    runIf:
      - device_doctor/**
      - .ci.yaml

  - name: Mac device_doctor
    postsubmit: false
    recipe: cocoon/device_doctor
    properties:
      add_recipes_cq: "true"
    runIf:
      - device_doctor/**
      - .ci.yaml

  - name: Windows device_doctor
    postsubmit: false
    recipe: cocoon/device_doctor
    properties:
      add_recipes_cq: "true"
    runIf:
      - device_doctor/**
      - .ci.yaml

  - name: Linux ci_yaml roller
    recipe: infra/ci_yaml
    properties:
      add_recipes_cq: "true"
