使用 Jenkins Job DSL 插件,为什么仅在构建后检查指标(FindBugs、Checkstyle、PMD)?
Using Jenkins Job DSL plugin, why are the metrics (FindBugs, Checkstyle, PMD) only checked after the build?
直到最近,我们还是手动创建 Jenkins 作业。我们的政策是使用 FindBugs、Checkstyle 和 PMD 检查代码,任何超过特定阈值的项目都被认为是不稳定的,不允许将其工件部署到我们的 Maven 存储库。
在 Jenkins 中,当我创建 "Maven project" 时,我在 "Build Settings" 下获得了指标配置。如果超过任何阈值,构建将被视为不稳定,并且不会执行 Post-构建操作 "Deploy artifacts to Maven repository"。应该是这样。
然而,在我们使用mavenJob()
生成的作业中,情况有所不同。在这里,指标被添加到 publisherContext
,因此如果超过阈值,构建仍然被认为是不稳定的,但是没有什么能阻止工件被部署到 Maven 存储库。
我错过了什么吗?如何像以前一样将指标添加到构建设置?
您可以使用 deployArtifacts{}
和 evenIfUnstable(false)
来明确设置:
mavenJob('example-job') {
publishers {
deployArtifacts {
evenIfUnstable(false)
}
}
}
直到最近,我们还是手动创建 Jenkins 作业。我们的政策是使用 FindBugs、Checkstyle 和 PMD 检查代码,任何超过特定阈值的项目都被认为是不稳定的,不允许将其工件部署到我们的 Maven 存储库。
在 Jenkins 中,当我创建 "Maven project" 时,我在 "Build Settings" 下获得了指标配置。如果超过任何阈值,构建将被视为不稳定,并且不会执行 Post-构建操作 "Deploy artifacts to Maven repository"。应该是这样。
然而,在我们使用mavenJob()
生成的作业中,情况有所不同。在这里,指标被添加到 publisherContext
,因此如果超过阈值,构建仍然被认为是不稳定的,但是没有什么能阻止工件被部署到 Maven 存储库。
我错过了什么吗?如何像以前一样将指标添加到构建设置?
您可以使用 deployArtifacts{}
和 evenIfUnstable(false)
来明确设置:
mavenJob('example-job') {
publishers {
deployArtifacts {
evenIfUnstable(false)
}
}
}