Remove obsolete schema fields and share workflow traversal
This commit is contained in:
@@ -146,29 +146,13 @@ func TeamProblems(members []api.TeamMember) []string {
|
||||
}
|
||||
|
||||
func Ends(def api.WorkflowDefinition) []string {
|
||||
return ends(api.WorkflowStep{Order: &def.Steps})
|
||||
}
|
||||
|
||||
func ends(s api.WorkflowStep) []string {
|
||||
switch {
|
||||
case s.Order != nil:
|
||||
if len(*s.Order) == 0 {
|
||||
return []string{}
|
||||
}
|
||||
return ends((*s.Order)[len(*s.Order)-1])
|
||||
case s.Parallel != nil:
|
||||
out := []string{}
|
||||
for _, b := range *s.Parallel {
|
||||
out = append(out, ends(b)...)
|
||||
}
|
||||
return out
|
||||
}
|
||||
return []string{s.Stage}
|
||||
return build(def).ends
|
||||
}
|
||||
|
||||
type graph struct {
|
||||
stages []api.WorkflowStep
|
||||
after map[string][]string
|
||||
ends []string
|
||||
}
|
||||
|
||||
func (g *graph) walk(s api.WorkflowStep, before []string) []string {
|
||||
@@ -192,7 +176,7 @@ func (g *graph) walk(s api.WorkflowStep, before []string) []string {
|
||||
|
||||
func build(def api.WorkflowDefinition) graph {
|
||||
g := graph{after: map[string][]string{}}
|
||||
g.walk(api.WorkflowStep{Order: &def.Steps}, []string{})
|
||||
g.ends = g.walk(api.WorkflowStep{Order: &def.Steps}, []string{})
|
||||
return g
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user