# See http://luci-config.appspot.com/schemas/projects/refs:cq.cfg for the
# documentation of this file format.

# This file is also used to auto generate //docs/infra/cq_builders.md. If you
# change this file, run //infra/config/branch/cq_cfg_presubmit.py, which will
# generate that file. That script also requires that the builders in this file
# remain sorted. The script is invoked via presubmit, and will complain if this
# file is change but the documentation isn't.
#
# The auto generated file copies comments made to builders in this file. If you
# comment on the line directly above a builder, that comment will get copied to
# the documentation.
#
# The following comment will get copied.
#
# # This is a great builder!
# builders { name: "chromium_presubmit" }
#
# The following comment will not get copied.
#
# # This is a ok builder!
#
# builders { name: "chromium_presubmit" }

version: 1
cq_status_url: "https://chromium-cq-status.appspot.com"
git_repo_url: "https://chromium.googlesource.com/chromium/src"
commit_burst_delay: 60
max_commit_burst: 2

# Trooper, if you want to drain CQ such that CQ stops triggering new trybots,
# uncomment line below. The timestamp cutoff time in UTC s.t. all CLs
# on which CQ was triggered **after** this time are ignored by CQ.
# draining_start_time: "2018-02-28T20:00:00Z"

gerrit {}

verifiers {
  gerrit_cq_ability {
    committer_list: "project-chromium-committers"
    dry_run_access_list: "project-chromium-tryjob-access"
  }

  tree_status {
    tree_status_url: "https://chromium-status.appspot.com/"
  }

# NOTE: when adding new configs to the commit queue, please contact
# chrome-eng-review per
# https://sites.google.com/a/chromium.org/dev/developers/testing/chromium-build-infrastructure/tour-of-the-chromium-buildbot?pli=1#TOC-Adding-new-build-configurations-and-tests-to-the-main-Chromium-waterfall-Commit-Queue
  try_job {
    buckets {
      name: "luci.chromium.try"

      #############################
      # Always required builders. #
      #############################

      builders { name: "android-binary-size" }
      builders { name: "android-kitkat-arm-rel" }
      builders { name: "android-marshmallow-arm64-rel" }
      builders { name: "android_arm64_dbg_recipe" }
      builders { name: "android_clang_dbg_recipe" }
      builders { name: "android_compile_dbg" }
      builders { name: "android_cronet" }
      builders { name: "cast_shell_android" }
      builders { name: "cast_shell_linux" }
      builders { name: "chromeos-amd64-generic-rel" }
      builders { name: "chromeos-daisy-rel" }
      builders {
        name: "chromium_presubmit"
        # Presubmit builder should be re-run every time CQ is triggered
        # for last minute lint, OWNERS, etc checks.
        disable_reuse: true
      }
      builders { name: "fuchsia_arm64" }
      builders { name: "fuchsia_x64" }
      builders { name: "ios-simulator" }
      builders { name: "linux-chromeos-rel" }
      builders { name: "linux-chromeos-compile-dbg" }
      builders { name: "linux-jumbo-rel" }
      builders { name: "linux-libfuzzer-asan-rel" }
      builders { name: "linux-ozone-rel" }
      builders { name: "linux_chromium_asan_rel_ng" }
      builders { name: "linux_chromium_compile_dbg_ng" }
      builders { name: "linux_chromium_headless_rel" }
      builders { name: "linux_chromium_rel_ng" }
      builders { name: "linux_chromium_tsan_rel_ng" }
      builders { name: "mac_chromium_compile_dbg_ng" }
      builders { name: "mac_chromium_rel_ng" }
      builders { name: "win10_chromium_x64_rel_ng" }
      builders { name: "win7_chromium_rel_ng"}
      builders { name: "win_chromium_compile_dbg_ng" }
      builders { name: "win-libfuzzer-asan-rel" }

      ######################
      # Optional builders. #
      ######################

      builders {
        name: "android_optional_gpu_tests_rel"
        path_regexp: "cc/.+"
        path_regexp: "chrome/browser/vr/.+"
        path_regexp: "components/viz/.+"
        path_regexp: "content/test/gpu/.+"
        path_regexp: "gpu/.+"
        path_regexp: "media/(audio|filters|gpu)/.+"
        path_regexp: "services/viz/.+"
        path_regexp: "testing/trigger_scripts/.+"
        path_regexp: "third_party/blink/renderer/modules/webgl/.+"
        path_regexp: "ui/gl/.+"
      }
      builders {
        name: "closure_compilation"
        path_regexp: "components/offline_pages/resources/.+"
        path_regexp: "third_party/closure_compiler/.+"
        path_regexp: "third_party/polymer/.+"
      }
      builders {
        name: "ios-simulator-cronet"
        path_regexp: "components/cronet/.+"
        path_regexp_exclude: "components/cronet/android/.+"
        path_regexp: "components/grpc_support/.+"
        path_regexp: "ios/.+"
      }
      builders {
        name: "ios-simulator-full-configs"
        path_regexp: "ios/.+"
      }
      builders {
        name: "linux-blink-gen-property-trees"
        path_regexp: "third_party/blink/web_tests/FlagExpectations/enable-blink-features=BlinkGenPropertyTrees"
        path_regexp: "third_party/blink/web_tests/flag-specific/enable-blink-features=BlinkGenPropertyTrees"
      }
      builders {
        name: "linux-blink-rel"
        path_regexp: "cc/.+"
        path_regexp: "third_party/blink/renderer/core/(svg|paint)/.+"
        path_regexp: "third_party/blink/renderer/core/paint/compositing/.+"
        path_regexp: "third_party/blink/renderer/platform/graphics/.+"
        path_regexp: "third_party/blink/web_tests/FlagExpectations/enable-blink-features=BlinkGenPropertyTrees"
        path_regexp: "third_party/blink/web_tests/flag-specific/enable-blink-features=BlinkGenPropertyTrees"
        path_regexp: "third_party/blink/web_tests/FlagExpectations/enable-slimming-paint-v2"
        path_regexp: "third_party/blink/web_tests/flag-specific/enable-slimming-paint-v2/.+"
      }
      builders {
        name: "linux_chromium_dbg_ng"
        path_regexp: "build/.*check_gn_headers.*"
      }
      builders {
        name: "linux_layout_tests_layout_ng"
        path_regexp: "third_party/blink/renderer/core/(layout|paint)/ng/.+"
        path_regexp: "third_party/blink/renderer/core/editing/.+"
        path_regexp: "third_party/blink/renderer/platform/fonts/shaping/.+"
        path_regexp: "third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG"
        path_regexp: "third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/.+"
      }
      builders {
        name: "linux_layout_tests_slimming_paint_v2"
        path_regexp: "third_party/blink/renderer/core/paint/compositing/.+"
        path_regexp: "third_party/blink/renderer/core/(svg|paint)/.+"
        path_regexp: "third_party/blink/renderer/platform/graphics/.+"
        path_regexp: "third_party/blink/web_tests/FlagExpectations/enable-blink-features=BlinkGenPropertyTrees"
        path_regexp: "third_party/blink/web_tests/flag-specific/enable-blink-features=BlinkGenPropertyTrees"
        path_regexp: "third_party/blink/web_tests/FlagExpectations/enable-slimming-paint-v2"
        path_regexp: "third_party/blink/web_tests/flag-specific/enable-slimming-paint-v2/.+"
      }
      builders {
        name: "linux_mojo"
        path_regexp: "services/network/.+"
        path_regexp: "testing/buildbot/filters/mojo\\.fyi\\.network_.*"
        path_regexp: "third_party/blink/web_tests/FlagExpectations/enable-features=NetworkService"
      }
      builders {
        name: "linux_optional_gpu_tests_rel"
        path_regexp: "chrome/browser/vr/.+"
        path_regexp: "content/test/gpu/.+"
        path_regexp: "gpu/.+"
        path_regexp: "media/(audio|filters|gpu)/.+"
        path_regexp: "testing/trigger_scripts/.+"
        path_regexp: "third_party/blink/renderer/modules/webgl/.+"
        path_regexp: "ui/gl/.+"
      }
      builders {
        name: "linux_vr"
        path_regexp: "chrome/browser/vr/.+"
      }
      builders {
        name: "mac_optional_gpu_tests_rel"
        path_regexp: "chrome/browser/vr/.+"
        path_regexp: "content/test/gpu/.+"
        path_regexp: "gpu/.+"
        path_regexp: "media/(audio|filters|gpu)/.+"
        path_regexp: "services/shape_detection/.+"
        path_regexp: "testing/trigger_scripts/.+"
        path_regexp: "third_party/blink/renderer/modules/webgl/.+"
        path_regexp: "ui/gl/.+"
      }
      builders {
        name: "win_optional_gpu_tests_rel"
        path_regexp: "chrome/browser/vr/.+"
        path_regexp: "content/test/gpu/.+"
        path_regexp: "device/vr/.+"
        path_regexp: "gpu/.+"
        path_regexp: "media/(audio|filters|gpu)/.+"
        path_regexp: "testing/trigger_scripts/.+"
        path_regexp: "third_party/blink/renderer/modules/vr/.+"
        path_regexp: "third_party/blink/renderer/modules/webgl/.+"
        path_regexp: "third_party/blink/renderer/modules/xr/.+"
        path_regexp: "third_party/blink/renderer/platform/graphics/gpu/.+"
        path_regexp: "ui/gl/.+"
      }

      ##########################
      # Experimental builders. #
      ##########################

      # https://crbug.com/739556; make this non-experimental ASAP.
      builders {
        name: "ios-device"
        experiment_percentage: 10
      }
      # https://crbug.com/739556
      builders {
        name: "ios-device-xcode-clang"
        experiment_percentage: 10
      }
      # https://crbug.com/739556
      builders {
        name: "ios-simulator-xcode-clang"
        experiment_percentage: 10
      }
      # https://crbug.com/833482
      builders {
        name: "linux-dcheck-off-rel"
        experiment_percentage: 10
      }
      # https://crbug.com/855319
      builders {
        name: "linux-goma-rbe-staging-rel"
        experiment_percentage: 100
      }
      builders {
        name: "win7_chromium_rel_loc_exp"
        experiment_percentage: 20
      }
    }

    buckets {
      name: "master.tryserver.chromium.android"
      builders {
        name: "android_compile_x64_dbg"
        path_regexp: "sandbox/linux/(bpd_dsl|seccomp-bpf|secomp-bpf-helpers|system_headers|tests)/.+"
      }
      builders {
        name: "android_compile_x86_dbg"
        path_regexp: "sandbox/linux/(bpd_dsl|seccomp-bpf|secomp-bpf-helpers|system_headers|tests)/.+"
      }
      builders {
        name: "android_cronet_tester"
        path_regexp: "components/cronet/.+"
        path_regexp_exclude: "components/cronet/ios/.+"
        path_regexp: "components/grpc_support/.+"
      }
    }
  }

# NOTE: when adding new configs to the commit queue, please contact
# chrome-eng-review per
# https://sites.google.com/a/chromium.org/dev/developers/testing/chromium-build-infrastructure/tour-of-the-chromium-buildbot?pli=1#TOC-Adding-new-build-configurations-and-tests-to-the-main-Chromium-waterfall-Commit-Queue
}
