diff --git a/cmd/list.go b/cmd/list.go index da6e10d..051f5f4 100644 --- a/cmd/list.go +++ b/cmd/list.go @@ -21,17 +21,26 @@ func printList(plan *model.Plan) error { name: "Name", } + jobs := map[string]bool{} + duplicateJobIDs := false + idMaxWidth := len(header.id) stageMaxWidth := len(header.stage) nameMaxWidth := len(header.name) for i, stage := range plan.Stages { for _, r := range stage.Runs { + jobID := r.JobID line := lineInfoDef{ - id: r.JobID, + id: jobID, stage: strconv.Itoa(i), name: r.String(), } + if _, ok := jobs[jobID]; ok { + duplicateJobIDs = true + } else { + jobs[jobID] = true + } lineInfos = append(lineInfos, line) if idMaxWidth < len(line.id) { idMaxWidth = len(line.id) @@ -53,5 +62,8 @@ func printList(plan *model.Plan) error { for _, line := range lineInfos { fmt.Printf("%*s%*s%*s\n", -idMaxWidth, line.id, -stageMaxWidth, line.stage, -nameMaxWidth, line.name) } + if duplicateJobIDs { + fmt.Print("\nDetected multiple jobs with the same job name, use `-W` to specify the path to the specific workflow.\n") + } return nil }