in templater/jobs/utils.go [99:137]
func UnmarshalJobs(jobDir string) (map[string]types.JobConfig, error) {
files, err := os.ReadDir(jobDir)
if err != nil {
return nil, fmt.Errorf("reading job directory %s: %v", jobDir, err)
}
var mappers []func(string, map[string]interface{}) map[string]map[string]interface{}
mappers = append(mappers, AddReleaseBranch)
jobsToData := map[string]map[string]interface{}{}
for _, file := range files {
jobsToData[file.Name()] = map[string]interface{}{}
}
RunMappers(jobsToData, mappers)
finalJobList := map[string]types.JobConfig{}
for fileName, data := range jobsToData {
templateFileName := fileName
if name, ok := data["templateFileName"]; ok {
templateFileName = name.(string)
}
jobConfig, err := GenerateJobConfig(data, filepath.Join(jobDir, templateFileName))
if err != nil {
return nil, fmt.Errorf("%v", err)
}
if latest, ok := data["latestReleaseBranch"]; ok && latest.(bool) {
for j, command := range jobConfig.Commands {
jobConfig.Commands[j] = "if make check-for-supported-release-branch -C $PROJECT_PATH; then " + command + "; fi"
}
}
finalJobList[fileName] = jobConfig
}
return finalJobList, nil
}