func describeAdditionalBuildDetail(build *buildgraph.BuildConfigNode, lastSuccessfulBuild *buildgraph.BuildNode, lastUnsuccessfulBuild *buildgraph.BuildNode, activeBuilds []*buildgraph.BuildNode, pushTargetResolved bool, includeSuccess bool) []string { if build == nil { return nil } out := []string{} passTime := util.Time{} if lastSuccessfulBuild != nil { passTime = buildTimestamp(lastSuccessfulBuild.Build) } failTime := util.Time{} if lastUnsuccessfulBuild != nil { failTime = buildTimestamp(lastUnsuccessfulBuild.Build) } lastTime := failTime if passTime.After(failTime.Time) { lastTime = passTime } if lastSuccessfulBuild != nil && includeSuccess { out = append(out, describeBuildPhase(lastSuccessfulBuild.Build, &passTime, build.BuildConfig.Name, pushTargetResolved)) } if passTime.Before(failTime) { out = append(out, describeBuildPhase(lastUnsuccessfulBuild.Build, &failTime, build.BuildConfig.Name, pushTargetResolved)) } if len(activeBuilds) > 0 { activeOut := []string{} for i := range activeBuilds { activeOut = append(activeOut, describeBuildPhase(activeBuilds[i].Build, nil, build.BuildConfig.Name, pushTargetResolved)) } if buildTimestamp(activeBuilds[0].Build).Before(lastTime) { out = append(out, activeOut...) } else { out = append(activeOut, out...) } } if len(out) == 0 && lastSuccessfulBuild == nil { out = append(out, "not built yet") } return out }