# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see Config message:
#   https://luci-config.appspot.com/schemas/projects:commit-queue.cfg

cq_status_host: "chromium-cq-status.appspot.com"
submit_options {
  max_burst: 4
  burst_delay {
    seconds: 480
  }
}
config_groups {
  name: "main"
  gerrit {
    url: "https://chromium-review.googlesource.com"
    projects {
      name: "angle/angle"
      ref_regexp: "refs/heads/main"
    }
  }
  verifiers {
    gerrit_cq_ability {
      committer_list: "project-angle-committers"
      dry_run_access_list: "project-angle-tryjob-access"
    }
    tryjob {
      builders {
        name: "angle/try/android-arm-compile"
      }
      builders {
        name: "angle/try/android-arm-dbg-compile"
      }
      builders {
        name: "angle/try/android-arm64-dbg-compile"
      }
      builders {
        name: "angle/try/android-arm64-test"
      }
      builders {
        name: "angle/try/linux-asan-test"
      }
      builders {
        name: "angle/try/linux-dbg-compile"
      }
      builders {
        name: "angle/try/linux-test"
      }
      builders {
        name: "angle/try/linux-trace"
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "DEPS"
        }
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "src/libANGLE/capture/.+"
        }
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "src/tests/angle_end2end_tests_expectations.txt"
        }
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "src/tests/capture.+"
        }
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "src/tests/egl_tests/.+"
        }
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "src/tests/gl_tests/.+"
        }
      }
      builders {
        name: "angle/try/linux-tsan-test"
      }
      builders {
        name: "angle/try/mac-dbg-compile"
      }
      builders {
        name: "angle/try/mac-test"
      }
      builders {
        name: "angle/try/presubmit"
        disable_reuse: true
      }
      builders {
        name: "angle/try/win-asan-test"
      }
      builders {
        name: "angle/try/win-dbg-compile"
      }
      builders {
        name: "angle/try/win-msvc-compile"
      }
      builders {
        name: "angle/try/win-msvc-dbg-compile"
      }
      builders {
        name: "angle/try/win-msvc-x86-compile"
      }
      builders {
        name: "angle/try/win-msvc-x86-dbg-compile"
      }
      builders {
        name: "angle/try/win-test"
      }
      builders {
        name: "angle/try/win-trace"
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "DEPS"
        }
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "src/libANGLE/capture/.+"
        }
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "src/tests/angle_end2end_tests_expectations.txt"
        }
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "src/tests/capture.+"
        }
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "src/tests/egl_tests/.+"
        }
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          path_regexp: "src/tests/gl_tests/.+"
        }
      }
      builders {
        name: "angle/try/win-x86-dbg-compile"
      }
      builders {
        name: "angle/try/win-x86-test"
      }
      builders {
        name: "angle/try/winuwp-compile"
      }
      builders {
        name: "angle/try/winuwp-dbg-compile"
      }
      builders {
        name: "chromium/try/android-angle-chromium-try"
      }
      builders {
        name: "chromium/try/fuchsia-angle-try"
      }
      builders {
        name: "chromium/try/linux-angle-chromium-try"
      }
      builders {
        name: "chromium/try/mac-angle-chromium-try"
      }
      builders {
        name: "chromium/try/win-angle-chromium-x64-try"
      }
      builders {
        name: "chromium/try/win-angle-chromium-x86-try"
      }
      retry_config {
        single_quota: 1
        global_quota: 2
        failure_weight: 100
        transient_failure_weight: 1
        timeout_weight: 100
      }
    }
  }
}
