# Copyright 2019 The Crashpad Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

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

cq_status_host: "chromium-cq-status.appspot.com"
submit_options {
  max_burst: 4
  burst_delay {
    seconds: 480
  }
}
config_groups {
  gerrit {
    url: "https://chromium-review.googlesource.com"
    projects {
      name: "crashpad/crashpad"
      ref_regexp: "refs/heads/.+"
    }
  }
  verifiers {
    gerrit_cq_ability {
      committer_list: "project-crashpad-tryjob-access"
      dry_run_access_list: "project-crashpad-tryjob-access"
    }
    tryjob {
      builders {
        name: "crashpad/try/crashpad_try_mac_dbg"
      }
      builders {
        name: "crashpad/try/crashpad_try_mac_rel"
      }
      builders {
        name: "crashpad/try/crashpad_try_ios_device_dbg"
      }
      builders {
        name: "crashpad/try/crashpad_try_ios_device_rel"
      }
      builders {
        name: "crashpad/try/crashpad_try_ios_simulator_dbg"
      }
      builders {
        name: "crashpad/try/crashpad_try_ios_simulator_rel"
      }
      builders {
        name: "crashpad/try/crashpad_try_win_dbg"
      }
      builders {
        name: "crashpad/try/crashpad_try_win_rel"
      }
      builders {
        name: "crashpad/try/crashpad_try_linux_dbg"
      }
      builders {
        name: "crashpad/try/crashpad_try_linux_rel"
      }
      builders {
        name: "crashpad/try/crashpad_try_fuchsia_arm64_dbg"
      }
      builders {
        name: "crashpad/try/crashpad_try_fuchsia_arm64_rel"
      }
      builders {
        name: "crashpad/try/crashpad_try_fuchsia_x64_dbg"
      }
      builders {
        name: "crashpad/try/crashpad_try_fuchsia_x64_rel"
      }
      retry_config {
        single_quota: 1
        global_quota: 2
        failure_weight: 1
        transient_failure_weight: 1
        timeout_weight: 2
      }
    }
  }
}
