in linter/main.go [175:207]
func PresubmitMakeTargetCheck(jc *JobConstants) presubmitCheck {
return presubmitCheck(func(presubmitConfig config.Presubmit, fileContentsString string) (bool, int, string) {
if arrayStringContains(skipPresubmitMakeTargetCheck, presubmitConfig.JobBase.Name) {
fmt.Printf("Skipping check on presubmit job %v\n", presubmitConfig.JobBase.Name)
return true, 0, ""
}
jobMakeTargetMatches := regexp.MustCompile(`make (\w+[-\w]+?.*?)(\s|$)`).FindAllStringSubmatch(strings.Join(presubmitConfig.JobBase.Spec.Containers[0].Command, " "), -1)
jobMakeTarget := jobMakeTargetMatches[0][1]
// ignore release branch check
if jobMakeTarget == "check-for-supported-release-branch" {
jobMakeTarget = jobMakeTargetMatches[1][1]
}
makeCommandLineNo := findLineNumber(fileContentsString, "make")
if strings.Contains(presubmitConfig.JobBase.Name, "helm-chart") {
if jobMakeTarget != jc.HelmMakeTarget {
return false, makeCommandLineNo, fmt.Sprintf(`Invalid make target "%s", please use the "%s" target`, jobMakeTarget, jc.HelmMakeTarget)
}
} else if strings.Contains(presubmitConfig.JobBase.Name, "release-tooling") {
if jobMakeTarget != jc.ReleaseToolingMakeTarget {
return false, makeCommandLineNo, fmt.Sprintf(`Invalid make target "%s", please use the "%s" target`, jobMakeTarget, jc.ReleaseToolingMakeTarget)
}
} else if strings.Contains(presubmitConfig.JobBase.Name, "test") {
if jobMakeTarget != jc.TestsMakeTarget {
return false, makeCommandLineNo, fmt.Sprintf(`Invalid make target "%s", please use the "%s" target`, jobMakeTarget, jc.TestsMakeTarget)
}
} else if !strings.HasPrefix(jobMakeTarget, jc.DefaultMakeTarget) {
return false, makeCommandLineNo, fmt.Sprintf(`Invalid make target "%s", please use the "%s" target`, jobMakeTarget, jc.DefaultMakeTarget)
}
return true, 0, ""
})
}