// Copyright 2023 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package chromiumos;

option go_package = "go.chromium.org/chromiumos/infra/proto/go/chromiumos";
option java_package = "com.google.chrome.crosinfra.proto";

import "chromiumos/checkpoint.proto";

// Define protos for the Build Conductor. See go/cros-infra:build-conductor-dd
// for details.
message RetryRule {
  // If `insufficient` is true, this rule alone is insufficient cause for retry.
  // However, limits (such as cutoff_percent, max_retries, etc.) will still be
  // enforced.
  // A common use case for this field is a "catch-all" rule we want to impose
  // a global max_retries (by matching all builds) but we don't want to just
  // retry everything.
  bool insufficient = 10;

  // These fields will be used to match failures.
  // If a value is not specified, any value is accepted for that field.

  // Will be converted to the Status enum, but passed as an int here to
  // prevent a dependency on the luci-go repo.
  // See
  // https://chromium.googlesource.com/infra/luci/luci-go/+/master/buildbucket/proto/common.proto
  repeated int32 status = 1;
  repeated string builder_name_re = 2;
  repeated string summary_markdown_re = 3;
  chromiumos.RetryStep failed_checkpoint = 4;
  chromiumos.RetryStep before_checkpoint = 11;

  // If more than a certain percent of builds fail, we'll stop retrying.
  float cutoff_percent = 5;
  // If we're more than this many seconds into this build collection, don't
  // retry.
  int32 cutoff_seconds = 6;
  // Don't retry builds that have been running for more than build_runtime
  // seconds.
  int32 build_runtime_cutoff = 9;

  // Maximum number of retries to do.
  int32 max_retries = 7;
  // Maximum number of retries to do per build.
  int32 max_retries_per_build = 8;
}

message CollectConfig { repeated RetryRule rules = 1; }
