本文整理汇总了Golang中github.com/evergreen-ci/evergreen/model.Project.GetSpecForTask方法的典型用法代码示例。如果您正苦于以下问题:Golang Project.GetSpecForTask方法的具体用法?Golang Project.GetSpecForTask怎么用?Golang Project.GetSpecForTask使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/evergreen-ci/evergreen/model.Project
的用法示例。
在下文中一共展示了Project.GetSpecForTask方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: checkDependencyGraph
// Makes sure that the dependencies for the tasks in the project form a
// valid dependency graph (no cycles).
func checkDependencyGraph(project *model.Project) []ValidationError {
errs := []ValidationError{}
// map of task name and variant -> BuildVariantTask
tasksByNameAndVariant := map[model.TVPair]model.BuildVariantTask{}
// generate task nodes for every task and variant combination
visited := map[model.TVPair]bool{}
allNodes := []model.TVPair{}
for _, bv := range project.BuildVariants {
for _, t := range bv.Tasks {
t.Populate(project.GetSpecForTask(t.Name))
node := model.TVPair{bv.Name, t.Name}
tasksByNameAndVariant[node] = t
visited[node] = false
allNodes = append(allNodes, node)
}
}
// run through the task nodes, checking their dependency graphs for cycles
for _, node := range allNodes {
// the visited nodes
if err := dependencyCycleExists(node, visited, tasksByNameAndVariant); err != nil {
errs = append(errs,
ValidationError{
Message: fmt.Sprintf(
"dependency error for '%v' task: %v", node.TaskName, err),
},
)
}
}
return errs
}