Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BuildSummary ¶
type BuildSummary struct {
// BuildKey will always point to the "real" build, i.e. a buildbotBuild or
// a buildbucketBuild. It is always the parent key for the BuildSummary.
BuildKey *datastore.Key `gae:"$parent"`
// Global identifier for the builder that this Build belongs to, i.e.:
// "buildbot/<mastername>/<buildername>"
// "buildbucket/<bucketname>/<buildername>"
BuilderID string
// SelfLink provides a relative URL for this build.
// Buildbot: /buildbot/<mastername>/<buildername>/<buildnumber>
// Swarmbucket: Derived from Buildbucket (usually link to self)
SelfLink string
// Created is the time when the Build was first created. Due to pending
// queues, this may be substantially before Summary.Start.
Created time.Time
// Summary summarizes relevant bits about the overall build.
Summary Summary
// CurrentStep summarizes relevant bits about the currently running step (if
// any). Only expected to be set if !Summary.Status.Terminal().
CurrentStep Summary
// Manifests is a list of links to source manifests that this build reported.
Manifests []ManifestLink
// Patches is the list of patches which are associated with this build.
// We reserve the multi-patch case for advanced (multi-repo) tryjobs...
// Typically there will only be one patch associated with a build.
Patches []PatchInfo
// ManifestKeys is the list of ManifestKey entries for this BuildSummary.
ManifestKeys []ManifestKey
// contains filtered or unexported fields
}
BuildSummary is a datastore model which is used for storing staandardized summarized build data, and is used for backend-agnostic views (i.e. builders, console). It contains only data that:
- is necessary to render these simplified views
- is present in all implementations (buildbot, buildbucket)
This entity will live as a child of the various implementation's representations of a build (e.g. buildbotBuild). It has various 'tag' fields so that it can be queried by the various backend-agnostic views.
func (*BuildSummary) AddManifestKey ¶
func (bs *BuildSummary) AddManifestKey(project, console, manifest, repoURL string, revision []byte)
AddManifestKey adds a new entry to ManifestKey.
`revision` should be the hex-decoded git revision.
It's up to the caller to ensure that entries in ManifestKey aren't duplicated.
type Link ¶
type Link struct {
// Title (text) of the link.
Label string
// The destination for the link.
URL string
}
Link denotes a single labeled link.
type ManifestKey ¶
type ManifestKey []byte
ManifestKey is an index entry for BuildSummary, which looks like
0 ++ project ++ console ++ manifest_name ++ url ++ revision.decode('hex')
This is used to index this BuildSummary as the row for any consoles that it shows up in that use the Manifest/RepoURL/Revision indexing scheme.
(++ is cmpbin concatenation)
Example:
0 ++ "chromium" ++ "main" ++ "UNPATCHED" ++ "https://.../src.git" ++ deadbeef
The list of interested consoles is compiled at build summarization time.
type ManifestLink ¶
type ManifestLink struct {
// The name of the manifest as the build annotated it.
Name string
// The manifest ID (sha256).
ID []byte
}
ManifestLink is an in-MILO link to a named source manifest.
func (*ManifestLink) FromProperty ¶
func (m *ManifestLink) FromProperty(p ds.Property) (err error)
FromProperty implements ds.PropertyConverter
func (*ManifestLink) ToProperty ¶
func (m *ManifestLink) ToProperty() (ds.Property, error)
ToProperty implements ds.PropertyConverter
type PartialManifestKey ¶
type PartialManifestKey []byte
PartialManifestKey is an incomplete ManifestKey key which can be made complete by calling AddRevision.
func NewPartialManifestKey ¶
func NewPartialManifestKey(project, console, manifest, repoURL string) PartialManifestKey
NewPartialManifestKey generates a ManifestKey prefix corresponding to the given parameters.
func (PartialManifestKey) AddRevision ¶
func (p PartialManifestKey) AddRevision(revision []byte) ManifestKey
AddRevision appends a git revision (as bytes) to the PartialManifestKey, returning a full index value for BuildSummary.ManifestKey.
type PatchInfo ¶
type PatchInfo struct {
// A link to the patch page (i.e. the gerrit/rietveld review page).
Link Link
// The email of the author of the Patch.
AuthorEmail string
}
PatchInfo provides information about a patch included in a build.
type Status ¶
type Status int
Status is a discrete status for the purpose of colorizing a component. These are based off the Material Design Bootstrap color palettes.
const ( // NotRun if the component has not yet been run. NotRun Status = iota // 100 Gray // Running if the component is currently running. Running // 100 Teal // Success if the component has finished executing and is not noteworthy. Success // A200 Green // Failure if the component has finished executing and contains a failure. Failure // A200 Red // Warning just like from the buildbot days. Warning // 200 Yellow // InfraFailure if the component has finished incompletely due to a failure in infra. InfraFailure // A100 Purple // Exception if the component has finished incompletely and unexpectedly. This // is used for buildbot builds. Exception // A100 Purple // Expired if the component was never scheduled due to resource exhaustion. Expired // A200 Purple // DependencyFailure if the component has finished incompletely due to a failure in a // dependency. DependencyFailure // 100 Amber // WaitingDependency if the component has finished or paused execution due to an // incomplete dep. WaitingDependency // 100 Brown )
func (Status) MarshalJSON ¶
MarshalJSON renders enums into String rather than an int when marshalling.
type Summary ¶
type Summary struct {
// Status indicates the 'goodness' and lifetime of the thing. This usually
// translates directly to a status color.
Status Status
// Start indicates when this thing started doing its action.
Start time.Time
// End indicates when this thing completed doing its action.
End time.Time
// Text is a possibly-multi-line summary of what happened.
Text []string
}
Summary summarizes a thing (step, build, group of builds, whatever).
Source Files
¶
- build_summary.go
- link.go
- manifest_link.go
- patch_info.go
- status.go
- status_string.go
- summary.go