# 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
      device_type: "none"
  mac:
    properties:
      os: "Mac-12|Mac-13"
      cpu: x86
  mac_arm64:
    properties:
      os: "Mac-12|Mac-13"
      cpu: arm64
  windows:
    properties:
      os: Windows
      device_type: "none"

targets:
  - name: Linux Cocoon
    recipe: cocoon/cocoon
    properties:
      add_recipes_cq: "true"
    runIf:
      - .ci.yaml
      - analyze/**
      - app_dart/**
      - auto_submit/**
      - cipd_packages/**
      - cloud_build/**
      - dashboard/**
      - dev/**
      - licenses/**
      - packages/**
      - test_utilities/**
      - tooling/**

  - name: Linux device_doctor
    recipe: cocoon/cipd
    properties:
      script: cipd_packages/device_doctor/tool/build.sh
      cipd_name: flutter/device_doctor/linux-amd64
    runIf:
      - cipd_packages/device_doctor/**
      - .ci.yaml

  - name: Mac device_doctor
    recipe: cocoon/cipd
    properties:
      script: cipd_packages/device_doctor/tool/build.sh
      cipd_name: flutter/device_doctor/mac-amd64
      device_type: none
    runIf:
      - cipd_packages/device_doctor/**
      - .ci.yaml

  - name: Mac_arm64 device_doctor
    recipe: cocoon/cipd
    properties:
      script: cipd_packages/device_doctor/tool/build.sh
      cipd_name: flutter/device_doctor/mac-arm64
      device_type: none
    runIf:
      - cipd_packages/device_doctor/**
      - .ci.yaml

  - name: Windows device_doctor
    recipe: cocoon/cipd
    properties:
      script: cipd_packages\device_doctor\tool\build.bat
      cipd_name: flutter/device_doctor/windows-amd64
    runIf:
      - cipd_packages/device_doctor/**
      - .ci.yaml

  - name: Linux doxygen
    recipe: cocoon/cipd
    properties:
      script: cipd_packages/doxygen/tool/build.sh
      cipd_name: flutter/doxygen/linux-amd64
      dependencies: >-
        [
          {"dependency": "cmake", "version": "build_id:8787856497187628321"}
        ]
    runIf:
      - cipd_packages/doxygen/**
      - .ci.yaml

  - name: Mac codesign
    recipe: cocoon/cipd
    properties:
      script: cipd_packages/codesign/tool/build.sh
      cipd_name: flutter/codesign/mac-amd64
      device_type: none
    runIf:
      - cipd_packages/codesign/**
      - .ci.yaml

  - name: Mac_arm64 codesign
    recipe: cocoon/cipd
    properties:
      script: cipd_packages/codesign/tool/build.sh
      cipd_name: flutter/codesign/mac-arm64
      device_type: none
    runIf:
      - cipd_packages/codesign/**
      - .ci.yaml

  - name: Mac ruby
    recipe: cocoon/cipd
    timeout: 60
    properties:
      script: cipd_packages/ruby/tools/build.sh
      cipd_name: flutter/ruby/mac-amd64
      device_os: iOS
      contexts: >-
        [
          "osx_sdk_devicelab"
        ]
      $flutter/osx_sdk : >-
        {
          "sdk_version": "14e300c"
        }
    runIf:
      - cipd_packages/ruby/**
      - .ci.yaml

  - name: Mac_arm64 ruby
    recipe: cocoon/cipd
    timeout: 60
    properties:
      script: cipd_packages/ruby/tools/build.sh
      cipd_name: flutter/ruby/mac-arm64
      device_os: iOS
      contexts: >-
        [
          "osx_sdk_devicelab"
        ]
      $flutter/osx_sdk : >-
        {
          "sdk_version": "14e300c"
        }
    runIf:
      - cipd_packages/ruby/**
      - .ci.yaml

  - name: Linux ci_yaml roller
    recipe: infra/ci_yaml
    properties:
      backfill: "false"
    runIf:
      - .ci.yaml
