# 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/master/CI_YAML.md
enabled_branches:
  - master
  - dev
  - beta
  - stable
  - flutter-2.2-candidate.10

platform_properties:
  linux:
    properties:
      caches: >-
        [
          {"name":"builder_linux_engine","path":"builder"}
        ]
      os: Linux
  mac:
    properties:
      caches: >-
        [
          {"name":"flutter_cocoapods","path":"cocoapods"},
          {"name":"old_osx_sdk","path":"osx_sdk"},
          {"name":"builder_mac_engine","path":"builder"}
        ]
      os: Mac-10.15
      xcode: "11e708" # xcode 11
  windows:
    properties:
      caches: >-
        [
          {"name":"builder_win_engine","path":"builder"}
        ]
      timeout: "180"
      os: Windows-10

targets:
  - name: Linux Android AOT Engine
    builder: Linux Android AOT Engine
    recipe: engine
    properties:
      add_recipes_cq: "true"
      build_android_aot: "true"
      android_sdk_license: \n24333f8a63b6825ea9c5514f83c2829b004d1fee
      android_sdk_preview_license: \n84831b9409646a918e30573bab4c9c91346d8abd
    timeout: 60
    scheduler: luci

  - name: Linux Android Debug Engine
    builder: Linux Android Debug Engine
    recipe: engine
    properties:
      add_recipes_cq: "true"
      build_android_debug: "true"
      android_sdk_license: \n24333f8a63b6825ea9c5514f83c2829b004d1fee
      android_sdk_preview_license: \n84831b9409646a918e30573bab4c9c91346d8abd
    timeout: 60
    scheduler: luci

  - name: Linux Fuchsia
    builder: Linux Fuchsia
    recipe: engine
    properties:
      add_recipes_cq: "true"
      build_fuchsia: "true"
      fuchsia_ctl_version: version:0.0.27
    timeout: 60
    scheduler: luci

  - name: Linux Fuchsia FEMU
    builder: Linux Fuchsia FEMU
    recipe: femu_test
    properties:
      add_recipes_cq: "true"
      build_fuchsia: "true"
      fuchsia_ctl_version: version:0.0.27
    timeout: 60
    scheduler: luci

  - name: Linux Host Engine
    builder: Linux Host Engine
    recipe: engine
    properties:
      add_recipes_cq: "true"
      build_host: "true"
    timeout: 60
    scheduler: luci

  - name: Linux Arm Host Engine
    builder: Linux Arm Host Engine
    recipe: engine/engine_arm
    properties:
      add_recipes_cq: "true"
      build_host: "true"
    timeout: 90
    scheduler: luci

  - name: Linux Web Engine
    builder: Linux Web Engine
    recipe: web_engine
    properties:
      add_recipes_cq: "true"
      gcs_goldens_bucket: flutter_logs
    timeout: 60
    scheduler: luci
    runIf:
      - DEPS
      - lib/web_ui/**
      - web_sdk/**
      - tools/**
      - ci/**
      - flutter_frontend_server/**

  - name: Linux Web Framework tests
    builder: Linux Web Framework tests
    recipe: engine/web_engine_framework
    properties:
      add_recipes_cq: "true"
      framework: "true"
      shard: web_tests
      subshards: 0, 1, 2, 3, 4, 5, 6, 7_last
    timeout: 60
    scheduler: luci
    runIf:
      - DEPS
      - lib/web_ui/**
      - web_sdk/**
      - tools/**
      - ci/**
      - flutter_frontend_server/**

  - name: Mac Android AOT Engine
    builder: Mac Android AOT Engine
    recipe: engine
    properties:
      android_sdk_license: \n24333f8a63b6825ea9c5514f83c2829b004d1fee
      android_sdk_preview_license: \n84831b9409646a918e30573bab4c9c91346d8abd
      build_android_aot: "true"
    timeout: 60
    scheduler: luci

  - name: Mac Android Debug Engine
    builder: Mac Android Debug Engine
    recipe: engine
    properties:
      android_sdk_license: \n24333f8a63b6825ea9c5514f83c2829b004d1fee
      android_sdk_preview_license: \n84831b9409646a918e30573bab4c9c91346d8abd
      build_android_debug: "true"
    timeout: 60
    scheduler: luci

  - name: Mac Host Engine
    builder: Mac Host Engine
    recipe: engine
    properties:
      add_recipes_cq: "true"
      build_host: "true"
    timeout: 75
    scheduler: luci

  - name: Mac iOS Engine
    builder: Mac iOS Engine
    recipe: engine
    properties:
      build_ios: "true"
      ios_debug: "true"
      jazzy_version: 0.9.5
    timeout: 60
    scheduler: luci

  - name: Mac Web Engine
    builder: Mac Web Engine
    recipe: web_engine
    properties:
      gcs_goldens_bucket: flutter_logs
    timeout: 60
    scheduler: luci
    runIf:
      - DEPS
      - lib/web_ui/**
      - web_sdk/**
      - tools/**
      - ci/**
      - flutter_frontend_server/**

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

  - name: Windows Host Engine
    builder: Windows Host Engine
    recipe: engine
    properties:
      add_recipes_cq: "true"
      build_host: "true"
    scheduler: luci

  - name: Windows Web Engine
    builder: Windows Web Engine
    recipe: web_engine
    properties:
      gcs_goldens_bucket: flutter_logs
    timeout: 60
    scheduler: luci
    runIf:
      - DEPS
      - lib/web_ui/**
      - web_sdk/**

  - name: Mac iOS Engine Profile
    builder: Mac iOS Engine Profile
    presubmit: false
    recipe: engine
    properties:
      build_ios: "true"
      ios_profile: "true"
      jazzy_version: 0.9.5
    timeout: 90
    scheduler: luci

  - name: Mac iOS Engine Release
    builder: Mac iOS Engine Release
    presubmit: false
    recipe: engine
    properties:
      build_ios: "true"
      ios_release: "true"
      jazzy_version: 0.9.5
    timeout: 90
    scheduler: luci