# 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/scheduler/README.md
enabled_branches:
  - master
  - flutter-2.3-candidate.24

targets:
  - name: Linux Android AOT Engine
    builder: Linux Android AOT Engine
    scheduler: luci

  - name: Linux Android Debug Engine
    builder: Linux Android Debug Engine
    scheduler: luci

  - name: Linux Android Scenarios
    builder: Linux Android Scenarios
    postsubmit: false
    scheduler: luci

  - name: Linux Fuchsia
    builder: Linux Fuchsia
    scheduler: luci

  - name: Linux Fuchsia FEMU
    builder: Linux Fuchsia FEMU
    scheduler: luci

  - name: Linux Framework Smoke Tests
    builder: Linux Framework Smoke Tests
    scheduler: luci

  - name: Linux Host Engine
    builder: Linux Host Engine
    scheduler: luci

  - name: Linux Unopt
    builder: Linux Unopt
    scheduler: luci

  - name: Linux Arm Host Engine
    builder: Linux Arm Host Engine
    scheduler: luci

  - name: Linux Web Engine
    builder: Linux Web Engine
    scheduler: luci
    runIf:
      - DEPS
      - lib/web_ui/**
      - web_sdk/**
      - e2etests/web/**
      - tools/**
      - ci/**
      - flutter_frontend_server/**

  - name: Linux Web Framework tests
    builder: Linux Web Framework tests
    scheduler: luci
    runIf:
      - DEPS
      - lib/web_ui/**
      - web_sdk/**
      - e2etests/web/**
      - tools/**
      - ci/**
      - flutter_frontend_server/**

  - name: Mac Android AOT Engine
    builder: Mac Android AOT Engine
    scheduler: luci

  - name: Mac Android Debug Engine
    builder: Mac Android Debug Engine
    scheduler: luci

  - name: Mac Host Engine
    builder: Mac Host Engine
    scheduler: luci

  - name: Mac Unopt
    builder: Mac Unopt
    scheduler: luci

  - name: Mac iOS Engine
    builder: Mac iOS Engine
    scheduler: luci

  - name: Mac Web Engine
    builder: Mac Web Engine
    scheduler: luci
    runIf:
      - DEPS
      - lib/web_ui/**
      - web_sdk/**
      - e2etests/web/**
      - tools/**
      - ci/**
      - flutter_frontend_server/**

  - name: Windows Android AOT Engine
    builder: Windows Android AOT Engine
    scheduler: luci

  - name: Windows Host Engine
    builder: Windows Host Engine
    scheduler: luci

  - name: Windows Unopt
    builder: Windows Unopt
    scheduler: luci

  - name: Windows UWP Engine
    builder: Windows UWP Engine
    scheduler: luci

  - name: Windows Web Engine
    builder: Windows Web Engine
    scheduler: luci
    runIf:
      - DEPS
      - lib/web_ui/**
      - web_sdk/**

  - name: Mac iOS Engine Profile
    builder: Mac iOS Engine Profile
    presubmit: false
    scheduler: luci

  - name: Mac iOS Engine Release
    builder: Mac iOS Engine Release
    presubmit: false
    scheduler: luci

