使用 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)
        }
    }
}