config

package
v0.0.0-...-4a11b79 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2020 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package config contains the CQ config schema.

Index

Constants

This section is empty.

Variables

View Source
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.

View Source
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.

View Source
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.

View Source
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 *duration.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() *duration.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) Enum

func (x CommentLevel) Enum() *CommentLevel

func (CommentLevel) EnumDescriptor deprecated

func (CommentLevel) EnumDescriptor() ([]byte, []int)

Deprecated: Use CommentLevel.Descriptor instead.

func (CommentLevel) Number

func (CommentLevel) String

func (x CommentLevel) String() string

func (CommentLevel) Type

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) Descriptor() ([]byte, []int)

Deprecated: Use Config.ProtoReflect.Descriptor instead.

func (*Config) GetConfigGroups

func (x *Config) GetConfigGroups() []*ConfigGroup

func (*Config) GetCqStatusHost deprecated

func (x *Config) GetCqStatusHost() string

Deprecated: Do not use.

func (*Config) GetDrainingStartTime

func (x *Config) GetDrainingStartTime() string

func (*Config) GetProjectScopedAccount deprecated

func (x *Config) GetProjectScopedAccount() Toggle

Deprecated: Do not use.

func (*Config) GetSubmitOptions

func (x *Config) GetSubmitOptions() *SubmitOptions

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) ProtoReflect

func (x *Config) ProtoReflect() protoreflect.Message

func (*Config) Reset

func (x *Config) Reset()

func (*Config) String

func (x *Config) String() string

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"`
	// 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.

func (*ConfigGroup) Descriptor deprecated

func (*ConfigGroup) Descriptor() ([]byte, []int)

Deprecated: Use ConfigGroup.ProtoReflect.Descriptor instead.

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"`
	// 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) ProtoMessage

func (*ConfigGroup_Gerrit_Project) ProtoMessage()

func (*ConfigGroup_Gerrit_Project) ProtoReflect

func (*ConfigGroup_Gerrit_Project) Reset

func (x *ConfigGroup_Gerrit_Project) Reset()

func (*ConfigGroup_Gerrit_Project) String

func (x *ConfigGroup_Gerrit_Project) String() string

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 *duration.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() *duration.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.

const (
	Toggle_UNSET Toggle = 0
	Toggle_YES   Toggle = 1
	Toggle_NO    Toggle = 2
)

func (Toggle) Descriptor

func (Toggle) Descriptor() protoreflect.EnumDescriptor

func (Toggle) Enum

func (x Toggle) Enum() *Toggle

func (Toggle) EnumDescriptor deprecated

func (Toggle) EnumDescriptor() ([]byte, []int)

Deprecated: Use Toggle.Descriptor instead.

func (Toggle) Number

func (x Toggle) Number() protoreflect.EnumNumber

func (Toggle) String

func (x Toggle) String() string

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) Descriptor() ([]byte, []int)

Deprecated: Use Verifiers.ProtoReflect.Descriptor instead.

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

func (*Verifiers) Reset

func (x *Verifiers) Reset()

func (*Verifiers) String

func (x *Verifiers) String() string

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 (*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) Enum

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 (Verifiers_GerritCQAbility_CQAction) String

func (Verifiers_GerritCQAbility_CQAction) Type

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.
	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"`
	// 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 (*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) 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 (*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 (*Verifiers_Tryjob_EquivalentBuilder) Reset

func (*Verifiers_Tryjob_EquivalentBuilder) 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 (*Verifiers_Tryjob_IncludableBuilder) ProtoMessage

func (*Verifiers_Tryjob_IncludableBuilder) ProtoMessage()

func (*Verifiers_Tryjob_IncludableBuilder) ProtoReflect

func (*Verifiers_Tryjob_IncludableBuilder) Reset

func (*Verifiers_Tryjob_IncludableBuilder) 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.
	FailureWeight int32 `protobuf:"varint,3,opt,name=failure_weight,json=failureWeight,proto3" json:"failure_weight,omitempty"`
	// The weight assigned to each transient failure.
	TransientFailureWeight int32 `` /* 130-byte string literal not displayed */
	// The weight assigned to tryjob timeouts.
	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.

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 (*Verifiers_Tryjob_RetryConfig) Reset

func (x *Verifiers_Tryjob_RetryConfig) Reset()

func (*Verifiers_Tryjob_RetryConfig) String

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL