本文整理汇总了Golang中github.com/evergreen-ci/evergreen/model.ProjectRef类的典型用法代码示例。如果您正苦于以下问题:Golang ProjectRef类的具体用法?Golang ProjectRef怎么用?Golang ProjectRef使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ProjectRef类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: NewVersionFromRevision
// NewVersionFromRevision populates a new Version with metadata from a model.Revision.
// Does not populate its config or store anything in the database.
func NewVersionFromRevision(ref *model.ProjectRef, rev model.Revision) (*version.Version, error) {
number, err := model.GetNewRevisionOrderNumber(ref.Identifier)
if err != nil {
return nil, err
}
v := &version.Version{
Author: rev.Author,
AuthorEmail: rev.AuthorEmail,
Branch: ref.Branch,
CreateTime: rev.CreateTime,
Id: util.CleanName(fmt.Sprintf("%v_%v", ref.String(), rev.Revision)),
Identifier: ref.Identifier,
Message: rev.RevisionMessage,
Owner: ref.Owner,
Project: ref.Identifier,
RemotePath: ref.RemotePath,
Repo: ref.Repo,
RepoKind: ref.RepoKind,
Requester: evergreen.RepotrackerVersionRequester,
Revision: rev.Revision,
Status: evergreen.VersionCreated,
RevisionOrderNumber: number,
}
return v, nil
}
示例2: createVersionItems
// createVersionItems populates and stores all the tasks and builds for a version according to
// the given project config.
func createVersionItems(v *version.Version, ref *model.ProjectRef, project *model.Project) error {
for _, buildvariant := range project.BuildVariants {
if buildvariant.Disabled {
continue
}
buildId, err := model.CreateBuildFromVersion(project, v, buildvariant.Name, false, nil)
if err != nil {
return err
}
lastActivated, err := version.FindOne(version.ByLastVariantActivation(ref.Identifier, buildvariant.Name))
if err != nil {
evergreen.Logger.Logf(slogger.ERROR, "Error getting activation time for bv %v", buildvariant.Name)
return err
}
var lastActivation *time.Time
if lastActivated != nil {
for _, buildStatus := range lastActivated.BuildVariants {
if buildStatus.BuildVariant == buildvariant.Name && buildStatus.Activated {
lastActivation = &buildStatus.ActivateAt
break
}
}
}
var activateAt time.Time
var activated bool
if lastActivation == nil {
// if we don't have a last activation time then activate now.
activateAt = time.Now()
activated = true
} else {
activateAt = lastActivation.Add(time.Minute * time.Duration(ref.GetBatchTime(&buildvariant)))
evergreen.Logger.Logf(slogger.INFO, "Going to activate bv %v for project %v, version %v at %v",
buildvariant.Name, ref.Identifier, v.Id, activateAt)
}
v.BuildIds = append(v.BuildIds, buildId)
v.BuildVariants = append(v.BuildVariants, version.BuildStatus{
BuildVariant: buildvariant.Name,
Activated: activated,
ActivateAt: activateAt,
BuildId: buildId,
})
}
if err := v.Insert(); err != nil {
evergreen.Logger.Errorf(slogger.ERROR, "Error inserting version %v: %v", v.Id, err)
for _, buildStatus := range v.BuildVariants {
if buildErr := model.DeleteBuild(buildStatus.BuildId); buildErr != nil {
evergreen.Logger.Errorf(slogger.ERROR, "Error deleting build %v: %v",
buildStatus.BuildId, buildErr)
}
}
return err
}
return nil
}
示例3: addProject
func (uis *UIServer) addProject(w http.ResponseWriter, r *http.Request) {
dbUser := MustHaveUser(r)
_ = MustHaveProjectContext(r)
vars := mux.Vars(r)
id := vars["project_id"]
projectRef, err := model.FindOneProjectRef(id)
if err != nil {
uis.LoggedError(w, r, http.StatusInternalServerError, err)
return
}
if projectRef != nil {
http.Error(w, "Project already exists", http.StatusInternalServerError)
return
}
newProject := model.ProjectRef{
Identifier: id,
Enabled: true,
Tracked: true,
RepoKind: "github",
}
err = newProject.Insert()
if err != nil {
uis.LoggedError(w, r, http.StatusInternalServerError, err)
return
}
allProjects, err := uis.filterAuthorizedProjects(dbUser)
if err != nil {
uis.LoggedError(w, r, http.StatusInternalServerError, err)
return
}
data := struct {
Available bool
ProjectId string
AllProjects []model.ProjectRef
}{true, id, allProjects}
uis.WriteJSON(w, http.StatusOK, data)
}