Documentation ¶
Overview ¶
Package config contains the CQ config schema.
Index ¶
- Variables
- type CombineCLs
- type CommentLevel
- func (CommentLevel) Descriptor() protoreflect.EnumDescriptor
- func (x CommentLevel) Enum() *CommentLevel
- func (CommentLevel) EnumDescriptor() ([]byte, []int)deprecated
- func (x CommentLevel) Number() protoreflect.EnumNumber
- func (x CommentLevel) String() string
- func (CommentLevel) Type() protoreflect.EnumType
- type Config
- func (*Config) Descriptor() ([]byte, []int)deprecated
- func (x *Config) GetConfigGroups() []*ConfigGroup
- func (x *Config) GetCqStatusHost() stringdeprecated
- func (x *Config) GetDrainingStartTime() string
- func (x *Config) GetProjectScopedAccount() Toggledeprecated
- func (x *Config) GetSubmitOptions() *SubmitOptions
- func (*Config) ProtoMessage()
- func (x *Config) ProtoReflect() protoreflect.Message
- func (x *Config) Reset()
- func (x *Config) String() string
- type ConfigGroup
- func (*ConfigGroup) Descriptor() ([]byte, []int)deprecated
- func (x *ConfigGroup) GetAdditionalModes() []*Mode
- func (x *ConfigGroup) GetCombineCls() *CombineCLs
- func (x *ConfigGroup) GetFallback() Toggle
- func (x *ConfigGroup) GetGerrit() []*ConfigGroup_Gerrit
- func (x *ConfigGroup) GetName() string
- func (x *ConfigGroup) GetVerifiers() *Verifiers
- func (*ConfigGroup) ProtoMessage()
- func (x *ConfigGroup) ProtoReflect() protoreflect.Message
- func (x *ConfigGroup) Reset()
- func (x *ConfigGroup) String() string
- type ConfigGroup_Gerrit
- func (*ConfigGroup_Gerrit) Descriptor() ([]byte, []int)deprecated
- func (x *ConfigGroup_Gerrit) GetProjects() []*ConfigGroup_Gerrit_Project
- func (x *ConfigGroup_Gerrit) GetUrl() string
- func (*ConfigGroup_Gerrit) ProtoMessage()
- func (x *ConfigGroup_Gerrit) ProtoReflect() protoreflect.Message
- func (x *ConfigGroup_Gerrit) Reset()
- func (x *ConfigGroup_Gerrit) String() string
- type ConfigGroup_Gerrit_Project
- func (*ConfigGroup_Gerrit_Project) Descriptor() ([]byte, []int)deprecated
- func (x *ConfigGroup_Gerrit_Project) GetName() string
- func (x *ConfigGroup_Gerrit_Project) GetRefRegexp() []string
- func (x *ConfigGroup_Gerrit_Project) GetRefRegexpExclude() []string
- func (*ConfigGroup_Gerrit_Project) ProtoMessage()
- func (x *ConfigGroup_Gerrit_Project) ProtoReflect() protoreflect.Message
- func (x *ConfigGroup_Gerrit_Project) Reset()
- func (x *ConfigGroup_Gerrit_Project) String() string
- type Mode
- func (*Mode) Descriptor() ([]byte, []int)deprecated
- func (x *Mode) GetCqLabelValue() int32
- func (x *Mode) GetName() string
- func (x *Mode) GetTriggeringLabel() string
- func (x *Mode) GetTriggeringValue() int32
- func (*Mode) ProtoMessage()
- func (x *Mode) ProtoReflect() protoreflect.Message
- func (x *Mode) Reset()
- func (x *Mode) String() string
- type SubmitOptions
- func (*SubmitOptions) Descriptor() ([]byte, []int)deprecated
- func (x *SubmitOptions) GetBurstDelay() *durationpb.Duration
- func (x *SubmitOptions) GetMaxBurst() int32
- func (*SubmitOptions) ProtoMessage()
- func (x *SubmitOptions) ProtoReflect() protoreflect.Message
- func (x *SubmitOptions) Reset()
- func (x *SubmitOptions) String() string
- type Toggle
- type Verifiers
- func (*Verifiers) Descriptor() ([]byte, []int)deprecated
- func (x *Verifiers) GetCqlinter() *Verifiers_CQLinter
- func (x *Verifiers) GetFake() *Verifiers_Fake
- func (x *Verifiers) GetGerritCqAbility() *Verifiers_GerritCQAbility
- func (x *Verifiers) GetTreeStatus() *Verifiers_TreeStatus
- func (x *Verifiers) GetTryjob() *Verifiers_Tryjob
- func (*Verifiers) ProtoMessage()
- func (x *Verifiers) ProtoReflect() protoreflect.Message
- func (x *Verifiers) Reset()
- func (x *Verifiers) String() string
- type Verifiers_CQLinter
- type Verifiers_Fake
- func (*Verifiers_Fake) Descriptor() ([]byte, []int)deprecated
- func (x *Verifiers_Fake) GetDelay() int32
- func (x *Verifiers_Fake) GetEventualState() string
- func (x *Verifiers_Fake) GetName() string
- func (*Verifiers_Fake) ProtoMessage()
- func (x *Verifiers_Fake) ProtoReflect() protoreflect.Message
- func (x *Verifiers_Fake) Reset()
- func (x *Verifiers_Fake) String() string
- type Verifiers_GerritCQAbility
- func (*Verifiers_GerritCQAbility) Descriptor() ([]byte, []int)deprecated
- func (x *Verifiers_GerritCQAbility) GetAllowOwnerIfSubmittable() Verifiers_GerritCQAbility_CQAction
- func (x *Verifiers_GerritCQAbility) GetAllowSubmitWithOpenDeps() bool
- func (x *Verifiers_GerritCQAbility) GetCommitterList() []string
- func (x *Verifiers_GerritCQAbility) GetDryRunAccessList() []string
- func (*Verifiers_GerritCQAbility) ProtoMessage()
- func (x *Verifiers_GerritCQAbility) ProtoReflect() protoreflect.Message
- func (x *Verifiers_GerritCQAbility) Reset()
- func (x *Verifiers_GerritCQAbility) String() string
- type Verifiers_GerritCQAbility_CQAction
- func (Verifiers_GerritCQAbility_CQAction) Descriptor() protoreflect.EnumDescriptor
- func (x Verifiers_GerritCQAbility_CQAction) Enum() *Verifiers_GerritCQAbility_CQAction
- func (Verifiers_GerritCQAbility_CQAction) EnumDescriptor() ([]byte, []int)deprecated
- func (x Verifiers_GerritCQAbility_CQAction) Number() protoreflect.EnumNumber
- func (x Verifiers_GerritCQAbility_CQAction) String() string
- func (Verifiers_GerritCQAbility_CQAction) Type() protoreflect.EnumType
- type Verifiers_TreeStatus
- func (*Verifiers_TreeStatus) Descriptor() ([]byte, []int)deprecated
- func (x *Verifiers_TreeStatus) GetUrl() string
- func (*Verifiers_TreeStatus) ProtoMessage()
- func (x *Verifiers_TreeStatus) ProtoReflect() protoreflect.Message
- func (x *Verifiers_TreeStatus) Reset()
- func (x *Verifiers_TreeStatus) String() string
- type Verifiers_Tryjob
- func (*Verifiers_Tryjob) Descriptor() ([]byte, []int)deprecated
- func (x *Verifiers_Tryjob) GetBuilders() []*Verifiers_Tryjob_Builder
- func (x *Verifiers_Tryjob) GetCancelStaleTryjobs() Toggledeprecated
- func (x *Verifiers_Tryjob) GetRetryConfig() *Verifiers_Tryjob_RetryConfig
- func (*Verifiers_Tryjob) ProtoMessage()
- func (x *Verifiers_Tryjob) ProtoReflect() protoreflect.Message
- func (x *Verifiers_Tryjob) Reset()
- func (x *Verifiers_Tryjob) String() string
- type Verifiers_Tryjob_Builder
- func (*Verifiers_Tryjob_Builder) Descriptor() ([]byte, []int)deprecated
- func (x *Verifiers_Tryjob_Builder) GetCancelStale() Toggle
- func (x *Verifiers_Tryjob_Builder) GetDisableReuse() bool
- func (x *Verifiers_Tryjob_Builder) GetEquivalentTo() *Verifiers_Tryjob_EquivalentBuilder
- func (x *Verifiers_Tryjob_Builder) GetExperimentPercentage() float32
- func (x *Verifiers_Tryjob_Builder) GetIncludableOnly() bool
- func (x *Verifiers_Tryjob_Builder) GetLocationRegexp() []string
- func (x *Verifiers_Tryjob_Builder) GetLocationRegexpExclude() []string
- func (x *Verifiers_Tryjob_Builder) GetModeAllowlist() []string
- func (x *Verifiers_Tryjob_Builder) GetName() string
- func (x *Verifiers_Tryjob_Builder) GetOwnerWhitelistGroup() []string
- func (x *Verifiers_Tryjob_Builder) GetResultVisibility() CommentLevel
- func (x *Verifiers_Tryjob_Builder) GetTriggeredBy() string
- func (*Verifiers_Tryjob_Builder) ProtoMessage()
- func (x *Verifiers_Tryjob_Builder) ProtoReflect() protoreflect.Message
- func (x *Verifiers_Tryjob_Builder) Reset()
- func (x *Verifiers_Tryjob_Builder) String() string
- type Verifiers_Tryjob_EquivalentBuilder
- func (*Verifiers_Tryjob_EquivalentBuilder) Descriptor() ([]byte, []int)deprecated
- func (x *Verifiers_Tryjob_EquivalentBuilder) GetName() string
- func (x *Verifiers_Tryjob_EquivalentBuilder) GetOwnerWhitelistGroup() string
- func (x *Verifiers_Tryjob_EquivalentBuilder) GetPercentage() float32
- func (*Verifiers_Tryjob_EquivalentBuilder) ProtoMessage()
- func (x *Verifiers_Tryjob_EquivalentBuilder) ProtoReflect() protoreflect.Message
- func (x *Verifiers_Tryjob_EquivalentBuilder) Reset()
- func (x *Verifiers_Tryjob_EquivalentBuilder) String() string
- type Verifiers_Tryjob_IncludableBuilder
- func (*Verifiers_Tryjob_IncludableBuilder) Descriptor() ([]byte, []int)deprecated
- func (x *Verifiers_Tryjob_IncludableBuilder) GetName() string
- func (*Verifiers_Tryjob_IncludableBuilder) ProtoMessage()
- func (x *Verifiers_Tryjob_IncludableBuilder) ProtoReflect() protoreflect.Message
- func (x *Verifiers_Tryjob_IncludableBuilder) Reset()
- func (x *Verifiers_Tryjob_IncludableBuilder) String() string
- type Verifiers_Tryjob_RetryConfig
- func (*Verifiers_Tryjob_RetryConfig) Descriptor() ([]byte, []int)deprecated
- func (x *Verifiers_Tryjob_RetryConfig) GetFailureWeight() int32
- func (x *Verifiers_Tryjob_RetryConfig) GetGlobalQuota() int32
- func (x *Verifiers_Tryjob_RetryConfig) GetSingleQuota() int32
- func (x *Verifiers_Tryjob_RetryConfig) GetTimeoutWeight() int32
- func (x *Verifiers_Tryjob_RetryConfig) GetTransientFailureWeight() int32
- func (*Verifiers_Tryjob_RetryConfig) ProtoMessage()
- func (x *Verifiers_Tryjob_RetryConfig) ProtoReflect() protoreflect.Message
- func (x *Verifiers_Tryjob_RetryConfig) Reset()
- func (x *Verifiers_Tryjob_RetryConfig) String() string
Constants ¶
This section is empty.
Variables ¶
var ( Toggle_name = map[int32]string{ 0: "UNSET", 1: "YES", 2: "NO", } Toggle_value = map[string]int32{ "UNSET": 0, "YES": 1, "NO": 2, } )
Enum value maps for Toggle.
var ( CommentLevel_name = map[int32]string{ 0: "COMMENT_LEVEL_UNSET", 1: "COMMENT_LEVEL_FULL", 2: "COMMENT_LEVEL_RESTRICTED", } CommentLevel_value = map[string]int32{ "COMMENT_LEVEL_UNSET": 0, "COMMENT_LEVEL_FULL": 1, "COMMENT_LEVEL_RESTRICTED": 2, } )
Enum value maps for CommentLevel.
var ( Verifiers_GerritCQAbility_CQAction_name = map[int32]string{ 0: "UNSET", 1: "DRY_RUN", 2: "COMMIT", } Verifiers_GerritCQAbility_CQAction_value = map[string]int32{ "UNSET": 0, "DRY_RUN": 1, "COMMIT": 2, } )
Enum value maps for Verifiers_GerritCQAbility_CQAction.
var File_go_chromium_org_luci_cv_api_config_v2_cq_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type CombineCLs ¶
type CombineCLs struct { // Roughly, how long CQ waits for CQ to be triggered on each of the related // CLs. // // Must be greater than 10s. // 30s is recommended. // // Technically precise definition is time to wait since the latest CL among // related ones receives CQ+1/2 vote before starting actual attempt. // // For example, during this delay, a CQ vote may be added on another CL // which depends on previously CQ-ed CL in this not-yet-started attempt. Then, // CQ would extend the attempt with additional CL and reset the waiting // counter. // // Additional implication is that a standalone CL w/o any other relations to // other CLs will need to wait this much time before CQ would start processing // it (i.e., before it triggers first tryjob). StabilizationDelay *durationpb.Duration `protobuf:"bytes,1,opt,name=stabilization_delay,json=stabilizationDelay,proto3" json:"stabilization_delay,omitempty"` // contains filtered or unexported fields }
CombineCLs defines how CQ works with >1 CL per attempt.
Dependencies between CLs are either implicit via Git child->parent relationship (e.g. stacked CLs in Gerrit) or explicit via "CQ-Depend:" footer in CL description (next to Change-Id:). "CQ-Depend" may span across repositories and even Gerrit hosts. For example, a CL on https://pdfium-review.googlesource.com may declare dependency on https://chromium-review.googlesource.com/1111111 by adding this footer:
CQ-Depend: chromium:1111111
The "chromium" part means that 1111111 is on the chromium-review.googlesource.com host. It can be omitted if dependency is on the same host as the CL depending on it.
CQ-Depend alone or with Git dependencies may form cycles, which is useful to require CQ to test & submit all CLs in a cycle at the same time, never alone.
A user must vote on CQ label on **each CL** individually. Since it can't be instantaneous, `stabilization_delay` controls how long CQ waits for all CQ+1/2 votes before computing maximal expanded set of CLs and starting the attempt.
For any CL with CQ+1/2 vote, each of its dependency must have the same CQ vote and be configured for CQ **in the same config group**, else CQ would abort the attempt with appropriate error message.
Each tryjob CQ triggers via Buildbucket will be associated with each CL of the attempt via `gerrit_changes` parameter of Buildbucket. These changes are then available to a build as it is being executed. If ran via recipes, the `ordered_gerrit_changes` property of https://chromium.googlesource.com/infra/luci/recipes-py/+/HEAD/README.recipes.md#class-cqapi_recipeapi can be used to CLs in the right order.
WARNING: When submitting CLs, CQ can not do so atomically (all submitted or none submitted) because Gerrit doesn't support this even for the same repo & target_ref.
func (*CombineCLs) Descriptor
deprecated
func (*CombineCLs) Descriptor() ([]byte, []int)
Deprecated: Use CombineCLs.ProtoReflect.Descriptor instead.
func (*CombineCLs) GetStabilizationDelay ¶
func (x *CombineCLs) GetStabilizationDelay() *durationpb.Duration
func (*CombineCLs) ProtoMessage ¶
func (*CombineCLs) ProtoMessage()
func (*CombineCLs) ProtoReflect ¶
func (x *CombineCLs) ProtoReflect() protoreflect.Message
func (*CombineCLs) Reset ¶
func (x *CombineCLs) Reset()
func (*CombineCLs) String ¶
func (x *CombineCLs) String() string
type CommentLevel ¶
type CommentLevel int32
Determines how visible the results of a build for this builder are in Gerrit comments.
This doesn't affect the buildbucket plugin (green/red chips).
const ( // Currently default to full visibility. CommentLevel_COMMENT_LEVEL_UNSET CommentLevel = 0 // The CQ reports the summary markdown and a link to the buildbucket build id // in Milo with the builder name in the URL in a Gerrit comment. CommentLevel_COMMENT_LEVEL_FULL CommentLevel = 1 // The CQ reports a generic "Build failed: https://ci.chromium.org/b/1234" // with no summary markdown. CommentLevel_COMMENT_LEVEL_RESTRICTED CommentLevel = 2 )
func (CommentLevel) Descriptor ¶
func (CommentLevel) Descriptor() protoreflect.EnumDescriptor
func (CommentLevel) Enum ¶
func (x CommentLevel) Enum() *CommentLevel
func (CommentLevel) EnumDescriptor
deprecated
func (CommentLevel) EnumDescriptor() ([]byte, []int)
Deprecated: Use CommentLevel.Descriptor instead.
func (CommentLevel) Number ¶
func (x CommentLevel) Number() protoreflect.EnumNumber
func (CommentLevel) String ¶
func (x CommentLevel) String() string
func (CommentLevel) Type ¶
func (CommentLevel) Type() protoreflect.EnumType
type Config ¶
type Config struct { // Optional. If present, the CQ will refrain from processing any CLs, // on which CQ was triggered after the specified time. // // This is an UTC RFC3339 (stiptime(tm)) string representing the time. // For example, "2017-12-23T15:47:58Z", where Z is required. DrainingStartTime string `protobuf:"bytes,1,opt,name=draining_start_time,json=drainingStartTime,proto3" json:"draining_start_time,omitempty"` // Optional and deprecated. // URL of the CQ status app to push updates to. // // Deprecated: Do not use. CqStatusHost string `protobuf:"bytes,2,opt,name=cq_status_host,json=cqStatusHost,proto3" json:"cq_status_host,omitempty"` // Optional options for how CLs should be submitted. SubmitOptions *SubmitOptions `protobuf:"bytes,3,opt,name=submit_options,json=submitOptions,proto3" json:"submit_options,omitempty"` // At least 1 ConfigGroup is required. ConfigGroups []*ConfigGroup `protobuf:"bytes,4,rep,name=config_groups,json=configGroups,proto3" json:"config_groups,omitempty"` // DO NOT USE. // // Deprecated: Do not use. ProjectScopedAccount Toggle `` /* 146-byte string literal not displayed */ // contains filtered or unexported fields }
This message describes a CQ configuration.
The config file commit-queue.cfg should be stored in the config directory of your project, alongside cr-buildbucket.cfg.
func (*Config) Descriptor
deprecated
func (*Config) GetConfigGroups ¶
func (x *Config) GetConfigGroups() []*ConfigGroup
func (*Config) GetCqStatusHost
deprecated
func (*Config) GetDrainingStartTime ¶
func (*Config) GetProjectScopedAccount
deprecated
func (*Config) GetSubmitOptions ¶
func (x *Config) GetSubmitOptions() *SubmitOptions
func (*Config) ProtoMessage ¶
func (*Config) ProtoMessage()
func (*Config) ProtoReflect ¶
func (x *Config) ProtoReflect() protoreflect.Message
type ConfigGroup ¶
type ConfigGroup struct { // The human- and machine-readable name (unique within this project) of this // config group. This is used in messages posted to users and in monitoring // data. Must match regex "^[a-zA-Z][a-zA-Z0-9_-]*$". Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` // At least 1 Gerrit instance with repositories to work with is required. Gerrit []*ConfigGroup_Gerrit `protobuf:"bytes,1,rep,name=gerrit,proto3" json:"gerrit,omitempty"` // Optional. If specified, CQ will consider sets of dependent CLs to test and // submit at the same time. // // Typical use-case is testing & submitting changes to multiple repos at the // same time, in which case all such repos must be declared up-front in // `Gerrit` part of this config_group. // // Not allowed to be used together with // submit_options.allow_submit_with_open_deps=true. CombineCls *CombineCLs `protobuf:"bytes,4,opt,name=combine_cls,json=combineCls,proto3" json:"combine_cls,omitempty"` // Defines how to verify a CL before submitting it. Required. Verifiers *Verifiers `protobuf:"bytes,2,opt,name=verifiers,proto3" json:"verifiers,omitempty"` // EXPERIMENTAL! TODO(tandrii, crbug/966115): add better doc or remove. // // If set, this ConfigGroup will be used if no other ConfigGroup matches. // // At most 1 config_group can be YES. // // Example use is to define specific config_group for refs/heads/master, // and fallback one for refs/heads/* which will pick up all CLs on // non-master branches. Fallback Toggle `protobuf:"varint,5,opt,name=fallback,proto3,enum=cq.config.Toggle" json:"fallback,omitempty"` // Optional. Additional run modes supported besides standard DRY_RUN and // FULL_RUN. // // If specified, the order matters. CQ will create the Run with the first // mode for which triggering conditions are fulfilled. If there is no such // mode, CQ will fallback to standard DRY_RUN or FULL_RUN. AdditionalModes []*Mode `protobuf:"bytes,7,rep,name=additional_modes,json=additionalModes,proto3" json:"additional_modes,omitempty"` // contains filtered or unexported fields }
ConfigGroup allows one to share single verifiers config across a set of Gerrit repositories, which may be in different Gerrit installations.
Next field number: 8
func (*ConfigGroup) Descriptor
deprecated
func (*ConfigGroup) Descriptor() ([]byte, []int)
Deprecated: Use ConfigGroup.ProtoReflect.Descriptor instead.
func (*ConfigGroup) GetAdditionalModes ¶
func (x *ConfigGroup) GetAdditionalModes() []*Mode
func (*ConfigGroup) GetCombineCls ¶
func (x *ConfigGroup) GetCombineCls() *CombineCLs
func (*ConfigGroup) GetFallback ¶
func (x *ConfigGroup) GetFallback() Toggle
func (*ConfigGroup) GetGerrit ¶
func (x *ConfigGroup) GetGerrit() []*ConfigGroup_Gerrit
func (*ConfigGroup) GetName ¶
func (x *ConfigGroup) GetName() string
func (*ConfigGroup) GetVerifiers ¶
func (x *ConfigGroup) GetVerifiers() *Verifiers
func (*ConfigGroup) ProtoMessage ¶
func (*ConfigGroup) ProtoMessage()
func (*ConfigGroup) ProtoReflect ¶
func (x *ConfigGroup) ProtoReflect() protoreflect.Message
func (*ConfigGroup) Reset ¶
func (x *ConfigGroup) Reset()
func (*ConfigGroup) String ¶
func (x *ConfigGroup) String() string
type ConfigGroup_Gerrit ¶
type ConfigGroup_Gerrit struct { // Gerrit URL, e.g., https://chromium-review.googlesource.com. // No trailing slashes allowed. Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` // Gerrit projects of this Gerrit instance to work with. // // At least 1 required. Projects []*ConfigGroup_Gerrit_Project `protobuf:"bytes,2,rep,name=projects,proto3" json:"projects,omitempty"` // contains filtered or unexported fields }
Enumerates repositories on a Gerrit instance for which CQ should work.
func (*ConfigGroup_Gerrit) Descriptor
deprecated
func (*ConfigGroup_Gerrit) Descriptor() ([]byte, []int)
Deprecated: Use ConfigGroup_Gerrit.ProtoReflect.Descriptor instead.
func (*ConfigGroup_Gerrit) GetProjects ¶
func (x *ConfigGroup_Gerrit) GetProjects() []*ConfigGroup_Gerrit_Project
func (*ConfigGroup_Gerrit) GetUrl ¶
func (x *ConfigGroup_Gerrit) GetUrl() string
func (*ConfigGroup_Gerrit) ProtoMessage ¶
func (*ConfigGroup_Gerrit) ProtoMessage()
func (*ConfigGroup_Gerrit) ProtoReflect ¶
func (x *ConfigGroup_Gerrit) ProtoReflect() protoreflect.Message
func (*ConfigGroup_Gerrit) Reset ¶
func (x *ConfigGroup_Gerrit) Reset()
func (*ConfigGroup_Gerrit) String ¶
func (x *ConfigGroup_Gerrit) String() string
type ConfigGroup_Gerrit_Project ¶
type ConfigGroup_Gerrit_Project struct { // Repository name inside Gerrit host. Required. // // No leading or trailing slashes allowed, no '.git' at the end. // 'a/' prefix is also not allowed (it's used on *.googlesource.com for // forcing authentication). // // Examples on https://chromium-review.googlesource.com: // catapult // chromium/src // chromium/tools/depot_tools Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Limit CLs in this repo to only these refs. Required. // // If not specified, defaults to "refs/heads/master". // // NOTE: your Gerrit admin must configure Gerrit ACLs such that CQ has // read access to these refs, otherwise your users will be waiting for CQ // to act on their CLs forever. // // Regular expression is validated by https://github.com/google/re2 library. // // NOTE: Git globs aren't supported. Convert them to a regular expression, // e.g., Git glob "refs/heads/*" should be "refs/heads/[^/]+". // However, users typically expect "refs/heads/.+", since expectation is // that every typical Git branch to be CQ-able, including // "refs/heads/experimental/foobar". RefRegexp []string `protobuf:"bytes,2,rep,name=ref_regexp,json=refRegexp,proto3" json:"ref_regexp,omitempty"` // Exclude matching refs in this repo. Optional. // // If a ref is matches at least one of the ref_regexp_exclude, // then it is ignored by this config group regardless of ref_regexp. // // The syntax is the same as for ref_regexp. RefRegexpExclude []string `protobuf:"bytes,3,rep,name=ref_regexp_exclude,json=refRegexpExclude,proto3" json:"ref_regexp_exclude,omitempty"` // contains filtered or unexported fields }
func (*ConfigGroup_Gerrit_Project) Descriptor
deprecated
func (*ConfigGroup_Gerrit_Project) Descriptor() ([]byte, []int)
Deprecated: Use ConfigGroup_Gerrit_Project.ProtoReflect.Descriptor instead.
func (*ConfigGroup_Gerrit_Project) GetName ¶
func (x *ConfigGroup_Gerrit_Project) GetName() string
func (*ConfigGroup_Gerrit_Project) GetRefRegexp ¶
func (x *ConfigGroup_Gerrit_Project) GetRefRegexp() []string
func (*ConfigGroup_Gerrit_Project) GetRefRegexpExclude ¶
func (x *ConfigGroup_Gerrit_Project) GetRefRegexpExclude() []string
func (*ConfigGroup_Gerrit_Project) ProtoMessage ¶
func (*ConfigGroup_Gerrit_Project) ProtoMessage()
func (*ConfigGroup_Gerrit_Project) ProtoReflect ¶
func (x *ConfigGroup_Gerrit_Project) ProtoReflect() protoreflect.Message
func (*ConfigGroup_Gerrit_Project) Reset ¶
func (x *ConfigGroup_Gerrit_Project) Reset()
func (*ConfigGroup_Gerrit_Project) String ¶
func (x *ConfigGroup_Gerrit_Project) String() string
type Mode ¶
type Mode struct { // Required. Name of this mode. // // The mode name will be passed verbatim to all Tryjobs that this CQ Run // launches. Must match regex "^[a-zA-Z][a-zA-Z0-9_-]{0,39}$". // // As of March 2021, only `QUICK_DRY_RUN` is allowed. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Required. The value of Commit-Queue label that MUST be set to when // triggering a CQ Run in this mode. // // Must be either 1 or 2. CqLabelValue int32 `protobuf:"varint,2,opt,name=cq_label_value,json=cqLabelValue,proto3" json:"cq_label_value,omitempty"` // Required. The Gerrit label that MUST also be set in order to trigger a // CQ Run in this mode. // // Both this label and the Commit-Queue label MUST be set at the same time. TriggeringLabel string `protobuf:"bytes,3,opt,name=triggering_label,json=triggeringLabel,proto3" json:"triggering_label,omitempty"` // Required. The value of the `triggering_label` that MUST be set to when // triggering a CQ Run in this mode. TriggeringValue int32 `protobuf:"varint,4,opt,name=triggering_value,json=triggeringValue,proto3" json:"triggering_value,omitempty"` // contains filtered or unexported fields }
Mode defines a CQ Run mode and how it can be triggered.
func (*Mode) Descriptor
deprecated
func (*Mode) GetCqLabelValue ¶
func (*Mode) GetTriggeringLabel ¶
func (*Mode) GetTriggeringValue ¶
func (*Mode) ProtoMessage ¶
func (*Mode) ProtoMessage()
func (*Mode) ProtoReflect ¶
func (x *Mode) ProtoReflect() protoreflect.Message
type SubmitOptions ¶
type SubmitOptions struct { // Optional. Maximum number of successful CQ attempts completed by submitting // corresponding Gerrit CL(s) before waiting burst_delay. // // This feature today applies to all attempts processed by this CQ, across all // config_groups. // // Must be >0 to take effect. Requires burst_delay to be set, too. MaxBurst int32 `protobuf:"varint,1,opt,name=max_burst,json=maxBurst,proto3" json:"max_burst,omitempty"` // Optional. Delay between bursts of submissions of CQ attempts. // See max_burst for more info. // // Must be >0 to take effect. Requires max_burst to be set, too. BurstDelay *durationpb.Duration `protobuf:"bytes,2,opt,name=burst_delay,json=burstDelay,proto3" json:"burst_delay,omitempty"` // contains filtered or unexported fields }
SubmitOptions control how CQ submits CLs.
func (*SubmitOptions) Descriptor
deprecated
func (*SubmitOptions) Descriptor() ([]byte, []int)
Deprecated: Use SubmitOptions.ProtoReflect.Descriptor instead.
func (*SubmitOptions) GetBurstDelay ¶
func (x *SubmitOptions) GetBurstDelay() *durationpb.Duration
func (*SubmitOptions) GetMaxBurst ¶
func (x *SubmitOptions) GetMaxBurst() int32
func (*SubmitOptions) ProtoMessage ¶
func (*SubmitOptions) ProtoMessage()
func (*SubmitOptions) ProtoReflect ¶
func (x *SubmitOptions) ProtoReflect() protoreflect.Message
func (*SubmitOptions) Reset ¶
func (x *SubmitOptions) Reset()
func (*SubmitOptions) String ¶
func (x *SubmitOptions) String() string
type Toggle ¶
type Toggle int32
A boolean with an "unset" default value.
func (Toggle) Descriptor ¶
func (Toggle) Descriptor() protoreflect.EnumDescriptor
func (Toggle) EnumDescriptor
deprecated
func (Toggle) Number ¶
func (x Toggle) Number() protoreflect.EnumNumber
func (Toggle) Type ¶
func (Toggle) Type() protoreflect.EnumType
type Verifiers ¶
type Verifiers struct { // Required. GerritCQAbility ensures that a user who triggered // this CQ attempt actually has rights to do so based on 3 factors: // * membership of the user in committers & dryrunners group, // * the state of CL/patchset on which CQ is triggered, // * relationship of the user to the CL. GerritCqAbility *Verifiers_GerritCQAbility `protobuf:"bytes,1,opt,name=gerrit_cq_ability,json=gerritCqAbility,proto3" json:"gerrit_cq_ability,omitempty"` // This verifier is used to check tree status before committing a CL. If the // tree is closed, then the verifier will wait until it is reopened. TreeStatus *Verifiers_TreeStatus `protobuf:"bytes,2,opt,name=tree_status,json=treeStatus,proto3" json:"tree_status,omitempty"` // This verifier triggers a set of builds through Buildbucket. // // CQ automatically retries failed tryjobs and only allows CL to land if each // builder has succeeded in the latest retry. // If a given tryjob result is too old (>1 day) it is ignored. // // Typically, builds from Buildbucket are executed on LUCI stack, however, CQ // is agnostic to how and where builds are executed. Tryjob *Verifiers_Tryjob `protobuf:"bytes,3,opt,name=tryjob,proto3" json:"tryjob,omitempty"` // CQLinter is for internal CQ use only. DO NOT USE IN YOUR cq.cfg. Cqlinter *Verifiers_CQLinter `protobuf:"bytes,4,opt,name=cqlinter,proto3" json:"cqlinter,omitempty"` // Fake is for internal CQ use only. DO NOT USE IN YOUR cq.cfg. Fake *Verifiers_Fake `protobuf:"bytes,5,opt,name=fake,proto3" json:"fake,omitempty"` // contains filtered or unexported fields }
Verifiers are various types of checks that a Commit Queue performs on a CL. All verifiers must pass in order for a CL to be submitted. Configuration file describes types of verifiers that should be applied to each CL and their parameters.
func (*Verifiers) Descriptor
deprecated
func (*Verifiers) GetCqlinter ¶
func (x *Verifiers) GetCqlinter() *Verifiers_CQLinter
func (*Verifiers) GetFake ¶
func (x *Verifiers) GetFake() *Verifiers_Fake
func (*Verifiers) GetGerritCqAbility ¶
func (x *Verifiers) GetGerritCqAbility() *Verifiers_GerritCQAbility
func (*Verifiers) GetTreeStatus ¶
func (x *Verifiers) GetTreeStatus() *Verifiers_TreeStatus
func (*Verifiers) GetTryjob ¶
func (x *Verifiers) GetTryjob() *Verifiers_Tryjob
func (*Verifiers) ProtoMessage ¶
func (*Verifiers) ProtoMessage()
func (*Verifiers) ProtoReflect ¶
func (x *Verifiers) ProtoReflect() protoreflect.Message
type Verifiers_CQLinter ¶
type Verifiers_CQLinter struct {
// contains filtered or unexported fields
}
CQLinter is for internal use in CQ.
func (*Verifiers_CQLinter) Descriptor
deprecated
func (*Verifiers_CQLinter) Descriptor() ([]byte, []int)
Deprecated: Use Verifiers_CQLinter.ProtoReflect.Descriptor instead.
func (*Verifiers_CQLinter) ProtoMessage ¶
func (*Verifiers_CQLinter) ProtoMessage()
func (*Verifiers_CQLinter) ProtoReflect ¶
func (x *Verifiers_CQLinter) ProtoReflect() protoreflect.Message
func (*Verifiers_CQLinter) Reset ¶
func (x *Verifiers_CQLinter) Reset()
func (*Verifiers_CQLinter) String ¶
func (x *Verifiers_CQLinter) String() string
type Verifiers_Fake ¶
type Verifiers_Fake struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` EventualState string `protobuf:"bytes,2,opt,name=eventual_state,json=eventualState,proto3" json:"eventual_state,omitempty"` Delay int32 `protobuf:"varint,3,opt,name=delay,proto3" json:"delay,omitempty"` // contains filtered or unexported fields }
Fake is for internal use in CQ.
func (*Verifiers_Fake) Descriptor
deprecated
func (*Verifiers_Fake) Descriptor() ([]byte, []int)
Deprecated: Use Verifiers_Fake.ProtoReflect.Descriptor instead.
func (*Verifiers_Fake) GetDelay ¶
func (x *Verifiers_Fake) GetDelay() int32
func (*Verifiers_Fake) GetEventualState ¶
func (x *Verifiers_Fake) GetEventualState() string
func (*Verifiers_Fake) GetName ¶
func (x *Verifiers_Fake) GetName() string
func (*Verifiers_Fake) ProtoMessage ¶
func (*Verifiers_Fake) ProtoMessage()
func (*Verifiers_Fake) ProtoReflect ¶
func (x *Verifiers_Fake) ProtoReflect() protoreflect.Message
func (*Verifiers_Fake) Reset ¶
func (x *Verifiers_Fake) Reset()
func (*Verifiers_Fake) String ¶
func (x *Verifiers_Fake) String() string
type Verifiers_GerritCQAbility ¶
type Verifiers_GerritCQAbility struct { // Required. List of chrome-infra-auth groups, whose members are authorized // to trigger full CQ runs. // // Typically, such groups are named "project-<name>-committers". CommitterList []string `protobuf:"bytes,1,rep,name=committer_list,json=committerList,proto3" json:"committer_list,omitempty"` // Optional, but strongly recommended. List of chrome-infra-auth groups, // whose members are authorized to trigger CQ dry run on Gerrit CLs they own // (not to be confused with OWNER files) even if CL hasn't been approved. // // Typically, such groups are named "project-<name>-tryjob-access". DryRunAccessList []string `protobuf:"bytes,2,rep,name=dry_run_access_list,json=dryRunAccessList,proto3" json:"dry_run_access_list,omitempty"` // Optional. allow_submit_with_open_deps controls how CQ full run behaves // when current Gerrit CL has open dependencies (not yet submitted CLs on // which *this* CL depends). // // If set to false (default), CQ will abort full run attempt immediately if // open dependencies are detected. // // If set to true, then CQ will not abort full run and upon passing all // other verifiers, CQ will attempt to submit the CL regardless of open // dependencies and whether CQ verified those open dependencies. // In turn, if Gerrit project config allows this, Gerrit will execute submit // of all dependent CLs first and then this CL. AllowSubmitWithOpenDeps bool `` /* 137-byte string literal not displayed */ // Optional. Allow CL owner to trigger CQ dry or full run on their own CL, // even if not a member of `committer_list` or `dry_run_access_list`. // Defaults to no such allowance. // // WARNING: using this option is not recommended if you have sticky // Code-Review label because this allows a malicious developer to upload // an good looking patchset at first, get code review approval, // and then upload a bad patchset and CQ it right away. // // CL owner is Gerrit user owning a CL, i.e., its first patchset uploader. // not to be confused with OWNERS files. AllowOwnerIfSubmittable Verifiers_GerritCQAbility_CQAction `` /* 185-byte string literal not displayed */ // contains filtered or unexported fields }
func (*Verifiers_GerritCQAbility) Descriptor
deprecated
func (*Verifiers_GerritCQAbility) Descriptor() ([]byte, []int)
Deprecated: Use Verifiers_GerritCQAbility.ProtoReflect.Descriptor instead.
func (*Verifiers_GerritCQAbility) GetAllowOwnerIfSubmittable ¶
func (x *Verifiers_GerritCQAbility) GetAllowOwnerIfSubmittable() Verifiers_GerritCQAbility_CQAction
func (*Verifiers_GerritCQAbility) GetAllowSubmitWithOpenDeps ¶
func (x *Verifiers_GerritCQAbility) GetAllowSubmitWithOpenDeps() bool
func (*Verifiers_GerritCQAbility) GetCommitterList ¶
func (x *Verifiers_GerritCQAbility) GetCommitterList() []string
func (*Verifiers_GerritCQAbility) GetDryRunAccessList ¶
func (x *Verifiers_GerritCQAbility) GetDryRunAccessList() []string
func (*Verifiers_GerritCQAbility) ProtoMessage ¶
func (*Verifiers_GerritCQAbility) ProtoMessage()
func (*Verifiers_GerritCQAbility) ProtoReflect ¶
func (x *Verifiers_GerritCQAbility) ProtoReflect() protoreflect.Message
func (*Verifiers_GerritCQAbility) Reset ¶
func (x *Verifiers_GerritCQAbility) Reset()
func (*Verifiers_GerritCQAbility) String ¶
func (x *Verifiers_GerritCQAbility) String() string
type Verifiers_GerritCQAbility_CQAction ¶
type Verifiers_GerritCQAbility_CQAction int32
See `allow_owner_if_submittable` doc below.
const ( Verifiers_GerritCQAbility_UNSET Verifiers_GerritCQAbility_CQAction = 0 Verifiers_GerritCQAbility_DRY_RUN Verifiers_GerritCQAbility_CQAction = 1 // COMMIT implies ability to trigger dry run as well. Verifiers_GerritCQAbility_COMMIT Verifiers_GerritCQAbility_CQAction = 2 )
func (Verifiers_GerritCQAbility_CQAction) Descriptor ¶
func (Verifiers_GerritCQAbility_CQAction) Descriptor() protoreflect.EnumDescriptor
func (Verifiers_GerritCQAbility_CQAction) Enum ¶
func (x Verifiers_GerritCQAbility_CQAction) Enum() *Verifiers_GerritCQAbility_CQAction
func (Verifiers_GerritCQAbility_CQAction) EnumDescriptor
deprecated
func (Verifiers_GerritCQAbility_CQAction) EnumDescriptor() ([]byte, []int)
Deprecated: Use Verifiers_GerritCQAbility_CQAction.Descriptor instead.
func (Verifiers_GerritCQAbility_CQAction) Number ¶
func (x Verifiers_GerritCQAbility_CQAction) Number() protoreflect.EnumNumber
func (Verifiers_GerritCQAbility_CQAction) String ¶
func (x Verifiers_GerritCQAbility_CQAction) String() string
func (Verifiers_GerritCQAbility_CQAction) Type ¶
func (Verifiers_GerritCQAbility_CQAction) Type() protoreflect.EnumType
type Verifiers_TreeStatus ¶
type Verifiers_TreeStatus struct { // Required. URL of the project tree status app. Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` // contains filtered or unexported fields }
func (*Verifiers_TreeStatus) Descriptor
deprecated
func (*Verifiers_TreeStatus) Descriptor() ([]byte, []int)
Deprecated: Use Verifiers_TreeStatus.ProtoReflect.Descriptor instead.
func (*Verifiers_TreeStatus) GetUrl ¶
func (x *Verifiers_TreeStatus) GetUrl() string
func (*Verifiers_TreeStatus) ProtoMessage ¶
func (*Verifiers_TreeStatus) ProtoMessage()
func (*Verifiers_TreeStatus) ProtoReflect ¶
func (x *Verifiers_TreeStatus) ProtoReflect() protoreflect.Message
func (*Verifiers_TreeStatus) Reset ¶
func (x *Verifiers_TreeStatus) Reset()
func (*Verifiers_TreeStatus) String ¶
func (x *Verifiers_TreeStatus) String() string
type Verifiers_Tryjob ¶
type Verifiers_Tryjob struct { // Builders on which tryjobs should be triggered. // // CQ won't allow adding any builder via `CQ-Include-Trybots:` in CL // description except those in this list. Builders []*Verifiers_Tryjob_Builder `protobuf:"bytes,1,rep,name=builders,proto3" json:"builders,omitempty"` // Optional, defaulting to no retries whatsoever. RetryConfig *Verifiers_Tryjob_RetryConfig `protobuf:"bytes,2,opt,name=retry_config,json=retryConfig,proto3" json:"retry_config,omitempty"` // DEPRECATED. Use per-builder `cancel_stale` instead. // // Deprecated: Do not use. CancelStaleTryjobs Toggle `` /* 140-byte string literal not displayed */ // contains filtered or unexported fields }
Tryjob configures builders which CQ may trigger and/or use to verify CL(s).
func (*Verifiers_Tryjob) Descriptor
deprecated
func (*Verifiers_Tryjob) Descriptor() ([]byte, []int)
Deprecated: Use Verifiers_Tryjob.ProtoReflect.Descriptor instead.
func (*Verifiers_Tryjob) GetBuilders ¶
func (x *Verifiers_Tryjob) GetBuilders() []*Verifiers_Tryjob_Builder
func (*Verifiers_Tryjob) GetCancelStaleTryjobs
deprecated
func (x *Verifiers_Tryjob) GetCancelStaleTryjobs() Toggle
Deprecated: Do not use.
func (*Verifiers_Tryjob) GetRetryConfig ¶
func (x *Verifiers_Tryjob) GetRetryConfig() *Verifiers_Tryjob_RetryConfig
func (*Verifiers_Tryjob) ProtoMessage ¶
func (*Verifiers_Tryjob) ProtoMessage()
func (*Verifiers_Tryjob) ProtoReflect ¶
func (x *Verifiers_Tryjob) ProtoReflect() protoreflect.Message
func (*Verifiers_Tryjob) Reset ¶
func (x *Verifiers_Tryjob) Reset()
func (*Verifiers_Tryjob) String ¶
func (x *Verifiers_Tryjob) String() string
type Verifiers_Tryjob_Builder ¶
type Verifiers_Tryjob_Builder struct { // Required. Name of the builder as <project>/<bucket>/<builder> // // Examples: // "chromium/try/linux-tester" // "other-project/try/shared-try-builder" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // If true, this builder will only be used if specified via // `CQ-Include-Trybots:` on CL description. // // If false, the builder may still be included via `CQ-Include-Trybots:` // on CL description. // // This is useful if you want individual CLs to opt-in to this builder, // e.g.: // builder {name: "win-release"} # required for all. // builder {name: "win-debug" includable_only: true} # opt in only. // // Not combinable with: // * location_regexp[_exclude] // * experiment_percentage // * triggered_by IncludableOnly bool `protobuf:"varint,9,opt,name=includable_only,json=includableOnly,proto3" json:"includable_only,omitempty"` // Determines how visible the results of a build for this builder are in // Gerrit for this tryjob. // // This doesn't affect the buildbucket plugin (green/red chips). ResultVisibility CommentLevel `` /* 139-byte string literal not displayed */ // Optional. If true, a fresh build will be required for each CQ attempt. // // Default is false, meaning CQ may re-use a successful build // triggered before current CQ attempt started. // // This option is typically used for builders which run depot_tools' // PRESUBMIT scripts, which are supposed to be quick to run and provide // additional OWNERS, lint, etc checks which are useful to run against // the latest revision of the CL's target branch. DisableReuse bool `protobuf:"varint,2,opt,name=disable_reuse,json=disableReuse,proto3" json:"disable_reuse,omitempty"` // Optional. If YES (default), running or not-yet-started builds of this // builder previously triggered by CQ will be cancelled as soon as // a substantially different patchset is uploaded to a CL. // // The following paragraph is only applicable to LUCI Change Verifier ( // The successor of legacy CQ). As of 09/2020, the implementation is // still WIP. TODO(crbug/1127991): Remove after migration is done. // // CV will snapshot the value of this option when a Run is created // and use it throughout the lifecycle of this Run. Therefore, // modification on this option will only take effect on newly-created // Runs after config change is propagated to CV. CancelStale Toggle `protobuf:"varint,11,opt,name=cancel_stale,json=cancelStale,proto3,enum=cq.config.Toggle" json:"cancel_stale,omitempty"` // Optional name of a builder (aka parent) which will trigger this builder // (aka child). // // If `triggered_by` is not specified (default), CQ will trigger this // builder directly. // // Else, CQ will wait for `triggered_by` (parent) builder to trigger // (possibly, indirectly) this (child) builder. // Conditions: // * `triggered_by` (parent) builder must set a special property // `triggered_build_ids` upon successful completion with value set // to a list of triggered Buildbucket build IDs, // corresponding to each triggered build. One or more of the IDs must // correspond to this (child) builder, which will then be waited for // by CQ. // * parent->child relationship graph must be a forest (set of a trees). // However, grandparent->parent->child triggering structure isn't well // tested. Please, talk to CQ maintainers to discuss your use case if you // actually need it. // // Failure/Retry semantics: // * If `triggered_by` (parent) builder succeeds, but doesn't set // the right `triggered_build_ids` then CQ will wait for this child // build to complete for as long as parent build result remains valid. // * If this (child) builder fails and CQ still has retry budget, // CQ will retry a parent builder. // // For example, given config: // builder { name: "*/m/mac_compiler" } // builder { name: "*/m/mac_tester_10.12" // triggered_by: "*/m/mac_compiler" } // builder { name: "*/m/mac_tester_10.13" // triggered_by: "*/m/mac_compiler" } // CQ will trigger and wait for "mac_compiler" to succeed. Then, it'll // check its `triggered_build_ids` and find which ones correspond to // "mac_tester_10.12" and "mac_tester_10.13" and wait for each to // complete. If say "mac_tester_10.12" fails, CQ will retry // "mac_compiler" and expect it to trigger new builds for // "mac_tester_10.12" and "mac_tester_10.13". TriggeredBy string `protobuf:"bytes,3,opt,name=triggered_by,json=triggeredBy,proto3" json:"triggered_by,omitempty"` // Optional. When this field is present, it marks given builder as // experimental. It is only triggered on a given percentage of the CLs // and the outcome does not affect the decision of whether a CL can land // or not. This is typically used to test new builders and estimate their // capacity requirements. May be combined with location_regexp and // location_regexp_exclude. ExperimentPercentage float32 `protobuf:"fixed32,4,opt,name=experiment_percentage,json=experimentPercentage,proto3" json:"experiment_percentage,omitempty"` // Optionally specified alternative builder for CQ to choose instead. // If provided, CQ will choose only one of the equivalent builders as // required based purely on given CL and CL's owner and **regardless** of // the possibly already completed tryjobs. // // Note: none of the equivalent builders should be part of triggered_by // chain, although CQ may eventually relax this requirement. EquivalentTo *Verifiers_Tryjob_EquivalentBuilder `protobuf:"bytes,5,opt,name=equivalent_to,json=equivalentTo,proto3" json:"equivalent_to,omitempty"` // Optional. Require this builder only if location_regexp matches a file // in this CL. // // This means: // * If specified and no file in a CL matches any of the location_regexp, // then CQ will not care about this builder. // * If a file in a CL matches any location_regexp_exclude, then this file // won't be considered when matching location_regexp. // // If location_regexp is not specified (default), builder will be used // on all CLs. // // The location_regexp matches are done against the following string: // <gerrit_url>/<gerrit_project_name>/+/<cl_file_path> // File path must be relative to root of the repo, and it uses Unix / // directory separators. // // The comparison is a full match; the pattern is implicitly anchored with // "^" and "$", so there is no need add them. // // CQ uses Google's re2 syntax for regexp, documented here: // https://github.com/google/re2/wiki/Syntax. // // Touching a file means either adding, modifying or removing it. // // These options currently can not be combined with the following other options: // * triggered_by // * GerritCQAbility.allow_submit_with_open_deps // If you need to combine them, please talk to CQ owners. // // Examples: // // location_regexp: // "https://chromium-review.googlesource.com/chromium/src/[+]/third_party/blink/.+" // will enable builder for all CLs touching any file in // third_party/blink directory of the chromium/src repo, but not // just the directory itself. // // location_regexp: "https://example.com/repo/[+]/.+" // location_regexp_exclude: "https://example.com/repo/[+]/all/one.txt" // will match a CL which touches at least one file other than // 'one.txt' inside all/ directory of the Gerrit project "repo". // // location_regexp_exclude: "https://example.com/.+/[+]/one.txt" // will match a CL which touches at least one file other than // 'one.txt' in any repository OR belongs to any other Gerrit server. // Note, in this case location_regexp defaults to ".*". LocationRegexp []string `protobuf:"bytes,6,rep,name=location_regexp,json=locationRegexp,proto3" json:"location_regexp,omitempty"` LocationRegexpExclude []string `` /* 126-byte string literal not displayed */ // If set, this builder will only be triggered if the CL owner (who first // uploaded the CL) is a member of at least one of these groups. OwnerWhitelistGroup []string `protobuf:"bytes,8,rep,name=owner_whitelist_group,json=ownerWhitelistGroup,proto3" json:"owner_whitelist_group,omitempty"` // If set, require this builder only if the Run mode matches // one of the modes in this list. Optional. ModeAllowlist []string `protobuf:"bytes,14,rep,name=mode_allowlist,json=modeAllowlist,proto3" json:"mode_allowlist,omitempty"` // contains filtered or unexported fields }
func (*Verifiers_Tryjob_Builder) Descriptor
deprecated
func (*Verifiers_Tryjob_Builder) Descriptor() ([]byte, []int)
Deprecated: Use Verifiers_Tryjob_Builder.ProtoReflect.Descriptor instead.
func (*Verifiers_Tryjob_Builder) GetCancelStale ¶
func (x *Verifiers_Tryjob_Builder) GetCancelStale() Toggle
func (*Verifiers_Tryjob_Builder) GetDisableReuse ¶
func (x *Verifiers_Tryjob_Builder) GetDisableReuse() bool
func (*Verifiers_Tryjob_Builder) GetEquivalentTo ¶
func (x *Verifiers_Tryjob_Builder) GetEquivalentTo() *Verifiers_Tryjob_EquivalentBuilder
func (*Verifiers_Tryjob_Builder) GetExperimentPercentage ¶
func (x *Verifiers_Tryjob_Builder) GetExperimentPercentage() float32
func (*Verifiers_Tryjob_Builder) GetIncludableOnly ¶
func (x *Verifiers_Tryjob_Builder) GetIncludableOnly() bool
func (*Verifiers_Tryjob_Builder) GetLocationRegexp ¶
func (x *Verifiers_Tryjob_Builder) GetLocationRegexp() []string
func (*Verifiers_Tryjob_Builder) GetLocationRegexpExclude ¶
func (x *Verifiers_Tryjob_Builder) GetLocationRegexpExclude() []string
func (*Verifiers_Tryjob_Builder) GetModeAllowlist ¶
func (x *Verifiers_Tryjob_Builder) GetModeAllowlist() []string
func (*Verifiers_Tryjob_Builder) GetName ¶
func (x *Verifiers_Tryjob_Builder) GetName() string
func (*Verifiers_Tryjob_Builder) GetOwnerWhitelistGroup ¶
func (x *Verifiers_Tryjob_Builder) GetOwnerWhitelistGroup() []string
func (*Verifiers_Tryjob_Builder) GetResultVisibility ¶
func (x *Verifiers_Tryjob_Builder) GetResultVisibility() CommentLevel
func (*Verifiers_Tryjob_Builder) GetTriggeredBy ¶
func (x *Verifiers_Tryjob_Builder) GetTriggeredBy() string
func (*Verifiers_Tryjob_Builder) ProtoMessage ¶
func (*Verifiers_Tryjob_Builder) ProtoMessage()
func (*Verifiers_Tryjob_Builder) ProtoReflect ¶
func (x *Verifiers_Tryjob_Builder) ProtoReflect() protoreflect.Message
func (*Verifiers_Tryjob_Builder) Reset ¶
func (x *Verifiers_Tryjob_Builder) Reset()
func (*Verifiers_Tryjob_Builder) String ¶
func (x *Verifiers_Tryjob_Builder) String() string
type Verifiers_Tryjob_EquivalentBuilder ¶
type Verifiers_Tryjob_EquivalentBuilder struct { // Required. Name of this builder. // Format is the same in the same format as Builder.name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Percentage expressing probability of CQ triggering this builder instead // of the builder to which this builder is equivalent to. // // A choice itself is made deterministically based on CL alone, hereby // all CQ attempts on all patchsets of a given CL will trigger the same // builder, assuming CQ config doesn't change in the mean time. // // Note that if `owner_whitelist_group` is also specified, the choice over // which of the two builders to trigger will be made only for CLs owned by // whitelisted group. // // If not specified, defaults to 0, meaning this builder is never // triggered by CQ, but an existing build can be re-used by CQ. // // To illustrate, suppose percentage=10. Then, // Without owner_whitelist_group, // ~10% of all CQ attempts will trigger this builder. // With owner_whitelist_group set and, suppose, 1/5 of CQ attempts are // ran on CLs owned by this group, then only ~(1/10)*(1/5) or // ~2% of all CQ attempts will trigger this builder. Percentage float32 `protobuf:"fixed32,2,opt,name=percentage,proto3" json:"percentage,omitempty"` // If specified, limits the builder to CL owners in this group. OwnerWhitelistGroup string `protobuf:"bytes,3,opt,name=owner_whitelist_group,json=ownerWhitelistGroup,proto3" json:"owner_whitelist_group,omitempty"` // contains filtered or unexported fields }
func (*Verifiers_Tryjob_EquivalentBuilder) Descriptor
deprecated
func (*Verifiers_Tryjob_EquivalentBuilder) Descriptor() ([]byte, []int)
Deprecated: Use Verifiers_Tryjob_EquivalentBuilder.ProtoReflect.Descriptor instead.
func (*Verifiers_Tryjob_EquivalentBuilder) GetName ¶
func (x *Verifiers_Tryjob_EquivalentBuilder) GetName() string
func (*Verifiers_Tryjob_EquivalentBuilder) GetOwnerWhitelistGroup ¶
func (x *Verifiers_Tryjob_EquivalentBuilder) GetOwnerWhitelistGroup() string
func (*Verifiers_Tryjob_EquivalentBuilder) GetPercentage ¶
func (x *Verifiers_Tryjob_EquivalentBuilder) GetPercentage() float32
func (*Verifiers_Tryjob_EquivalentBuilder) ProtoMessage ¶
func (*Verifiers_Tryjob_EquivalentBuilder) ProtoMessage()
func (*Verifiers_Tryjob_EquivalentBuilder) ProtoReflect ¶
func (x *Verifiers_Tryjob_EquivalentBuilder) ProtoReflect() protoreflect.Message
func (*Verifiers_Tryjob_EquivalentBuilder) Reset ¶
func (x *Verifiers_Tryjob_EquivalentBuilder) Reset()
func (*Verifiers_Tryjob_EquivalentBuilder) String ¶
func (x *Verifiers_Tryjob_EquivalentBuilder) String() string
type Verifiers_Tryjob_IncludableBuilder ¶
type Verifiers_Tryjob_IncludableBuilder struct { // Required. Name of this builder. // Format is the same in the same format as Builder.name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // contains filtered or unexported fields }
Builder which can be included via `CQ-Include-Trybots:` in CL description.
func (*Verifiers_Tryjob_IncludableBuilder) Descriptor
deprecated
func (*Verifiers_Tryjob_IncludableBuilder) Descriptor() ([]byte, []int)
Deprecated: Use Verifiers_Tryjob_IncludableBuilder.ProtoReflect.Descriptor instead.
func (*Verifiers_Tryjob_IncludableBuilder) GetName ¶
func (x *Verifiers_Tryjob_IncludableBuilder) GetName() string
func (*Verifiers_Tryjob_IncludableBuilder) ProtoMessage ¶
func (*Verifiers_Tryjob_IncludableBuilder) ProtoMessage()
func (*Verifiers_Tryjob_IncludableBuilder) ProtoReflect ¶
func (x *Verifiers_Tryjob_IncludableBuilder) ProtoReflect() protoreflect.Message
func (*Verifiers_Tryjob_IncludableBuilder) Reset ¶
func (x *Verifiers_Tryjob_IncludableBuilder) Reset()
func (*Verifiers_Tryjob_IncludableBuilder) String ¶
func (x *Verifiers_Tryjob_IncludableBuilder) String() string
type Verifiers_Tryjob_RetryConfig ¶
type Verifiers_Tryjob_RetryConfig struct { // Retry quota for a single tryjob. SingleQuota int32 `protobuf:"varint,1,opt,name=single_quota,json=singleQuota,proto3" json:"single_quota,omitempty"` // Retry quota for all tryjobs in a CL. GlobalQuota int32 `protobuf:"varint,2,opt,name=global_quota,json=globalQuota,proto3" json:"global_quota,omitempty"` // The weight assigned to each tryjob failure. A failure is as a // buildbucket build whose result == 'FAILURE'. FailureWeight int32 `protobuf:"varint,3,opt,name=failure_weight,json=failureWeight,proto3" json:"failure_weight,omitempty"` // The weight assigned to each transient failure. A transient failure is a // buildbucket build which has result == 'FAILURE' and 'failure_reason' in // ('BUILDBUCKET_FAILURE', 'INFRA_FAILURE'). TransientFailureWeight int32 `` /* 130-byte string literal not displayed */ // The weight assigned to tryjob timeouts. A tryjob timeout is as a // buildbucket build with result == 'CANCELED' and cancelation_reason == // 'TIMEOUT'. TimeoutWeight int32 `protobuf:"varint,5,opt,name=timeout_weight,json=timeoutWeight,proto3" json:"timeout_weight,omitempty"` // contains filtered or unexported fields }
Collection of parameters for deciding whether to retry a single build. If parameter is not specified, its value defaults to 0 (per proto3). Thus, omitting all parameters means no retries of any kind.
CQ's retry logic is as follows: All builds triggered during the lifetime of a CQ attempt for a tryjob are weighted according to the failure type, as described below. The resulting weights are then added together. Call this number W. If W > single_quota, then no more builds are scheduled for that tryjob.
W for every tryjob is then summed up. If that result is strictly greater than global_quota, then the CQ attempt fails, and no more builds are scheduled for the attempt.
func (*Verifiers_Tryjob_RetryConfig) Descriptor
deprecated
func (*Verifiers_Tryjob_RetryConfig) Descriptor() ([]byte, []int)
Deprecated: Use Verifiers_Tryjob_RetryConfig.ProtoReflect.Descriptor instead.
func (*Verifiers_Tryjob_RetryConfig) GetFailureWeight ¶
func (x *Verifiers_Tryjob_RetryConfig) GetFailureWeight() int32
func (*Verifiers_Tryjob_RetryConfig) GetGlobalQuota ¶
func (x *Verifiers_Tryjob_RetryConfig) GetGlobalQuota() int32
func (*Verifiers_Tryjob_RetryConfig) GetSingleQuota ¶
func (x *Verifiers_Tryjob_RetryConfig) GetSingleQuota() int32
func (*Verifiers_Tryjob_RetryConfig) GetTimeoutWeight ¶
func (x *Verifiers_Tryjob_RetryConfig) GetTimeoutWeight() int32
func (*Verifiers_Tryjob_RetryConfig) GetTransientFailureWeight ¶
func (x *Verifiers_Tryjob_RetryConfig) GetTransientFailureWeight() int32
func (*Verifiers_Tryjob_RetryConfig) ProtoMessage ¶
func (*Verifiers_Tryjob_RetryConfig) ProtoMessage()
func (*Verifiers_Tryjob_RetryConfig) ProtoReflect ¶
func (x *Verifiers_Tryjob_RetryConfig) ProtoReflect() protoreflect.Message
func (*Verifiers_Tryjob_RetryConfig) Reset ¶
func (x *Verifiers_Tryjob_RetryConfig) Reset()
func (*Verifiers_Tryjob_RetryConfig) String ¶
func (x *Verifiers_Tryjob_RetryConfig) String() string