如何正确使用Jenkins Warnings Next Generation Plugin的三步走?

aut*_*tix 9 software-quality jenkins jenkins-pipeline warnings-next-generation

Jenkins 警告下一代插件的管道文档指定了三个步骤变体:

  • publishIssues:发布静态分析扫描创建的问题
  • recordIssues:记录编译器警告和静态分析结果
  • scanForIssues:扫描文件或控制台日志中是否有警告或问题

我刚刚尝试过这个简单的片段:

stage('QA checks') {
    steps {
        recordIssues([
            enabledForFailure: true,
            tools: [php()]
        ])
    }
}
Run Code Online (Sandbox Code Playgroud)

并在构建页面上显示结果(“PHP 运行时:无警告”)。那么另外两步又有什么意义呢?

配置插件的正确方法是什么?应该像这样使用这三个部分吗?

stage('QA checks') {
    steps {
        scanForIssues([...])
        recordIssues([...])
        publishIssues([...])
    }
}
Run Code Online (Sandbox Code Playgroud)

use*_*141 11

来这里问同样的问题。从文档中弄清楚。https://github.com/jenkinsci/warnings-ng-plugin/blob/master/doc/Documentation.md

总之,该recordIssues命令旨在单独用于简单用例,而scanForIssuespublishIssues命令旨在一起用于更复杂的用例。

所以你的使用recordIssues似乎完全符合作者的意图。

文档

高级流水线配置

有时,使用单个步骤发布和报告问题是不够的。例如,如果您使用多个并行步骤构建您的产品,并且您希望将所有这些步骤中的问题合并为一个结果。然后你需要拆分扫描和聚合。该插件提供以下两个步骤:

  • scanForIssues:此步骤使用特定解析器扫描报告文件或控制台日志,并创建 包含报告的中间 AnnotatedReport对象。[...]
  • publishIssues:此步骤会在您的构建中发布一个新报告,其中包含多个 scanForIssues 步骤的汇总结果。[...]