Remove obsolete schema fields and share workflow traversal

This commit is contained in:
Ian Gulliver
2026-10-20 21:41:33 -07:00
parent 32ebf08b66
commit cde5089f46
4 changed files with 11 additions and 29 deletions
+3 -19
View File
@@ -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
}