本文整理匯總了Golang中github.com/evergreen-ci/evergreen/model.Project.FindBuildVariant方法的典型用法代碼示例。如果您正苦於以下問題:Golang Project.FindBuildVariant方法的具體用法?Golang Project.FindBuildVariant怎麽用?Golang Project.FindBuildVariant使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/evergreen-ci/evergreen/model.Project
的用法示例。
在下文中一共展示了Project.FindBuildVariant方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: cloneSource
func cloneSource(task *service.RestTask, project *model.ProjectRef, config *model.Project, cloneDir string) error {
// Fetch the outermost repo for the task
err := clone(
cloneOptions{
repo: fmt.Sprintf("[email protected]:%v/%v.git", project.Owner, project.Repo),
revision: task.Revision,
rootDir: cloneDir,
depth: defaultCloneDepth,
},
false,
)
if err != nil {
return err
}
// Then fetch each of the modules
variant := config.FindBuildVariant(task.BuildVariant)
if variant == nil {
return fmt.Errorf("couldn't find build variant '%v' in config", task.BuildVariant)
}
for _, moduleName := range variant.Modules {
module, err := config.GetModuleByName(moduleName)
if err != nil || module == nil {
return fmt.Errorf("variant refers to a module '%v' that doesn't exist.", moduleName)
}
moduleBase := filepath.Join(cloneDir, module.Prefix, module.Name)
fmt.Printf("Fetching module %v at %v\n", moduleName, module.Branch)
err = clone(cloneOptions{
repo: module.Repo,
revision: module.Branch,
rootDir: filepath.ToSlash(moduleBase),
}, false)
if err != nil {
return err
}
}
return nil
}
示例2: verifyTaskRequirements
// Makes sure that the dependencies for the tasks have the correct fields,
// and that the fields reference valid tasks.
func verifyTaskRequirements(project *model.Project) []ValidationError {
errs := []ValidationError{}
for _, bvt := range project.FindAllBuildVariantTasks() {
for _, r := range bvt.Requires {
if project.FindProjectTask(r.Name) == nil {
if r.Name == model.AllDependencies {
errs = append(errs, ValidationError{Message: fmt.Sprintf(
"task '%v': * is not supported for requirement selectors", bvt.Name)})
} else {
errs = append(errs,
ValidationError{Message: fmt.Sprintf(
"task '%v' requires non-existent task '%v'", bvt.Name, r.Name)})
}
}
if r.Variant != "" && r.Variant != model.AllVariants && project.FindBuildVariant(r.Variant) == nil {
errs = append(errs, ValidationError{Message: fmt.Sprintf(
"task '%v' requires non-existent variant '%v'", bvt.Name, r.Variant)})
}
}
}
return errs
}