Documentation ¶
Index ¶
- Constants
- Variables
- func ByAfterRevision(project, buildVariant string, revision int) db.Q
- func ByBeforeRevision(project, buildVariant string, revision int) db.Q
- func ByBetweenBuilds(current, previous *Build) db.Q
- func ByFinishedAfter(finishTime time.Time, project string, requester string) db.Q
- func ById(id string) db.Q
- func ByIds(ids []string) db.Q
- func ByProject(proj string) db.Q
- func ByRecentlyActivatedForProjectAndVariant(revision int, project, variant, requester string) db.Q
- func ByRecentlySuccessfulForProjectAndVariant(revision int, project, variant string) db.Q
- func ByRevision(revision string) db.Q
- func ByRevisionAndVariant(revision, variant string) db.Q
- func ByVariant(bv string) db.Q
- func ByVersion(version string) db.Q
- func ByVersions(vIds []string) db.Q
- func Remove(id string) error
- func ResetCachedTask(buildId, taskId string) error
- func SetCachedTaskActivated(buildId, taskId string, active bool) error
- func SetCachedTaskDispatched(buildId, taskId string) error
- func SetCachedTaskFinished(buildId, taskId string, detail *apimodels.TaskEndDetail, ...) error
- func SetCachedTaskStarted(buildId, taskId string, startTime time.Time) error
- func SetCachedTaskUndispatched(buildId, taskId string) error
- func SetTasksCache(buildId string, tasks []TaskCache) error
- func TryMarkStarted(buildId string, startTime time.Time) error
- func UpdateActivation(buildId string, active bool) error
- func UpdateOne(query interface{}, update interface{}) error
- type Build
- func (b *Build) FindBuildOnBaseCommit() (*Build, error)
- func (b *Build) FindIntermediateBuilds(previous *Build) ([]Build, error)
- func (b *Build) Insert() error
- func (b *Build) IsFinished() bool
- func (b *Build) MarkFinished(status string, finishTime time.Time) error
- func (b *Build) PreviousActivated(project string, requester string) (*Build, error)
- func (b *Build) PreviousSuccessful() (*Build, error)
- func (b *Build) UpdateStatus(status string) error
- type TaskCache
Constants ¶
const Collection = "builds"
The MongoDB collection for build documents.
const IdTimeLayout = "06_01_02_15_04_05"
IdTimeLayout is used time time.Time.Format() to produce timestamps for our ids.
Variables ¶
var ( // bson fields for the build struct IdKey = bsonutil.MustHaveTag(Build{}, "Id") CreateTimeKey = bsonutil.MustHaveTag(Build{}, "CreateTime") StartTimeKey = bsonutil.MustHaveTag(Build{}, "StartTime") FinishTimeKey = bsonutil.MustHaveTag(Build{}, "FinishTime") PushTimeKey = bsonutil.MustHaveTag(Build{}, "PushTime") VersionKey = bsonutil.MustHaveTag(Build{}, "Version") ProjectKey = bsonutil.MustHaveTag(Build{}, "Project") RevisionKey = bsonutil.MustHaveTag(Build{}, "Revision") BuildVariantKey = bsonutil.MustHaveTag(Build{}, "BuildVariant") BuildNumberKey = bsonutil.MustHaveTag(Build{}, "BuildNumber") StatusKey = bsonutil.MustHaveTag(Build{}, "Status") ActivatedKey = bsonutil.MustHaveTag(Build{}, "Activated") ActivatedTimeKey = bsonutil.MustHaveTag(Build{}, "ActivatedTime") RevisionOrderNumberKey = bsonutil.MustHaveTag(Build{}, "RevisionOrderNumber") TasksKey = bsonutil.MustHaveTag(Build{}, "Tasks") TimeTakenKey = bsonutil.MustHaveTag(Build{}, "TimeTaken") DisplayNameKey = bsonutil.MustHaveTag(Build{}, "DisplayName") RequesterKey = bsonutil.MustHaveTag(Build{}, "Requester") // bson fields for the task caches TaskCacheIdKey = bsonutil.MustHaveTag(TaskCache{}, "Id") TaskCacheDisplayNameKey = bsonutil.MustHaveTag(TaskCache{}, "DisplayName") TaskCacheStatusKey = bsonutil.MustHaveTag(TaskCache{}, "Status") TaskCacheStatusDetailsKey = bsonutil.MustHaveTag(TaskCache{}, "StatusDetails") TaskCacheStartTimeKey = bsonutil.MustHaveTag(TaskCache{}, "StartTime") TaskCacheTimeTakenKey = bsonutil.MustHaveTag(TaskCache{}, "TimeTaken") TaskCacheActivatedKey = bsonutil.MustHaveTag(TaskCache{}, "Activated") )
var All = db.Query(nil)
All returns all builds.
Functions ¶
func ByAfterRevision ¶
ByAfterRevision builds a query that returns all builds that happened at or after the given revision for the project/variant. Results are sorted by revision order, ascending.
func ByBeforeRevision ¶
ByBeforeRevision builds a query that returns all builds that happened before the given revision for the project/variant. Results are sorted by revision order, descending.
func ByBetweenBuilds ¶
ByBetweenBuilds returns all builds that happened between the current and previous build.
func ByFinishedAfter ¶
ByFinishedAfter creates a query that returns all builds for a project/requester that were finished after the given time.
func ByRecentlyActivatedForProjectAndVariant ¶
ByRecentlyActivatedForProjectAndVariant builds a query that returns all builds before a given revision that were activated for a project + variant. Builds are sorted from most to least recent.
func ByRecentlySuccessfulForProjectAndVariant ¶
ByRecentlySuccessfulForProjectAndVariant builds a query that returns all builds before a given revision that were sucessful for a project + variant. Builds are sorted from most to least recent.
func ByRevision ¶
ByRevision creates a query that returns all builds for a revision.
func ByRevisionAndVariant ¶
ByRevisionAndVariant creates a query that returns the non-patch build for a revision + buildvariant combionation.
func ByVersions ¶
ByVersions creates a query that finds all builds with the given version ids.
func ResetCachedTask ¶
ResetCachedTask resets the given task in the cache of the given build.
func SetCachedTaskActivated ¶
SetCachedTaskActivated sets the given task to active or inactive in the cache of the given build.
func SetCachedTaskDispatched ¶
SetCachedTaskDispatched sets the given task to "dispatched" in the cache of the given build.
func SetCachedTaskFinished ¶
func SetCachedTaskFinished(buildId, taskId string, detail *apimodels.TaskEndDetail, timeTaken time.Duration) error
SetCachedTaskFinished sets the given task to "finished" along with a time taken in the cache of the given build.
func SetCachedTaskStarted ¶
SetCachedTaskStarted sets the given task to "started" in the cache of the given build.
func SetCachedTaskUndispatched ¶
SetCachedTaskUndispatched sets the given task to "undispatched" in the cache of the given build.
func SetTasksCache ¶
SetTasksCache updates one build with the given id to contain the given task caches.
func TryMarkStarted ¶
TryMarkBuildStarted attempts to mark a b as started if it isn't already marked as such
func UpdateActivation ¶
UpdateActivation updates one build with the given id to the given activation setting.
Types ¶
type Build ¶
type Build struct { Id string `bson:"_id" json:"_id"` CreateTime time.Time `bson:"create_time" json:"create_time,omitempty"` StartTime time.Time `bson:"start_time" json:"start_time,omitempty"` FinishTime time.Time `bson:"finish_time" json:"finish_time,omitempty"` PushTime time.Time `bson:"push_time" json:"push_time,omitempty"` Version string `bson:"version" json:"version,omitempty"` Project string `bson:"branch" json:"branch,omitempty"` Revision string `bson:"gitspec" json:"gitspec,omitempty"` BuildVariant string `bson:"build_variant" json:"build_variant,omitempty"` BuildNumber string `bson:"build_number" json:"build_number,omitempty"` Status string `bson:"status" json:"status,omitempty"` Activated bool `bson:"activated" json:"activated,omitempty"` ActivatedTime time.Time `bson:"activated_time" json:"activated_time,omitempty"` RevisionOrderNumber int `bson:"order,omitempty" json:"order,omitempty"` Tasks []TaskCache `bson:"tasks" json:"tasks,omitempty"` TimeTaken time.Duration `bson:"time_taken" json:"time_taken,omitempty"` DisplayName string `bson:"display_name" json:"display_name,omitempty"` // build requester - this is used to help tell the // reason this build was created. e.g. it could be // because the repotracker requested it (via tracking the // repository) or it was triggered by a developer // patch request Requester string `bson:"r" json:"r,omitempty"` }
Build represents a set of tasks on one variant of a Project
e.g. one build might be "Ubuntu with Python 2.4" and another might be "OSX with Python 3.0", etc.
func (*Build) FindBuildOnBaseCommit ¶
FindBuildOnBaseCommit returns the build that a patch build is based on.
func (*Build) FindIntermediateBuilds ¶
Find all builds on the same project + variant + requester between the current b and the specified previous build.
func (*Build) IsFinished ¶
Returns whether or not the build has finished, based on its status.
func (*Build) MarkFinished ¶
MarkFinished sets the build to finished status in the database (this does not update task or version data).
func (*Build) PreviousActivated ¶
Find the most recent activated build with the same variant + requester + project as the current build.
func (*Build) PreviousSuccessful ¶
Find the most recent b on with the same build variant + requester + project as the current build, with any of the specified statuses.
func (*Build) UpdateStatus ¶
UpdateStatus sets the build status to the given string.
type TaskCache ¶
type TaskCache struct { Id string `bson:"id" json:"id"` DisplayName string `bson:"d" json:"display_name"` Status string `bson:"s" json:"status"` StatusDetails apimodels.TaskEndDetail `bson:"ed" json:"task_end_details"` StartTime time.Time `bson:"st" json:"start_time"` TimeTaken time.Duration `bson:"tt" json:"time_taken"` Activated bool `bson:"a" json:"activated"` }
TaskCache represents some duped information about tasks, mainly for ui purposes.