@@ -195,7 +195,6 @@ func (s *Step) extract(stepMap map[string]interface{}, action string) {
195195 }
196196}
197197
198- // duplicate copied from digger.go
199198func defaultWorkflow () * Workflow {
200199 return & Workflow {
201200 Configuration : & WorkflowConfiguration {
@@ -228,18 +227,37 @@ func defaultWorkflow() *Workflow {
228227
229228func ConvertDiggerYamlToConfig (diggerYaml * DiggerConfigYaml , workingDir string , walker DirWalker ) (* DiggerConfig , error ) {
230229 var diggerConfig DiggerConfig
230+ const defaultWorkflowName = "default"
231231
232232 diggerConfig .AutoMerge = diggerYaml .AutoMerge
233233
234+ // if workflow block is not specified in yaml we create a default one, and add it to every project
234235 if diggerYaml .Workflows != nil {
235236 diggerConfig .Workflows = diggerYaml .Workflows
236237 } else {
237238 workflow := * defaultWorkflow ()
238239 diggerConfig .Workflows = make (map [string ]Workflow )
239- diggerConfig .Workflows ["default" ] = workflow
240+ diggerConfig .Workflows [defaultWorkflowName ] = workflow
240241 }
241242
242243 diggerConfig .Projects = diggerYaml .Projects
244+
245+ // update project's workflows if needed
246+ for _ , project := range diggerConfig .Projects {
247+ if project .Workflow == "" {
248+ project .Workflow = defaultWorkflowName
249+ }
250+ }
251+
252+ // check for project name duplicates
253+ projectNames := make (map [string ]bool )
254+ for _ , project := range diggerConfig .Projects {
255+ if projectNames [project .Name ] {
256+ return nil , fmt .Errorf ("project name '%s' is duplicated" , project .Name )
257+ }
258+ projectNames [project .Name ] = true
259+ }
260+
243261 diggerConfig .CollectUsageData = diggerYaml .CollectUsageData
244262
245263 if diggerYaml .GenerateProjectsConfig != nil {
@@ -266,16 +284,6 @@ func ConvertDiggerYamlToConfig(diggerYaml *DiggerConfigYaml, workingDir string,
266284 }
267285 }
268286 }
269-
270- projectNames := make (map [string ]bool )
271-
272- for _ , project := range diggerConfig .Projects {
273- if projectNames [project .Name ] {
274- return nil , fmt .Errorf ("project name '%s' is duplicated" , project .Name )
275- }
276- projectNames [project .Name ] = true
277- }
278-
279287 return & diggerConfig , nil
280288}
281289
0 commit comments