9

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

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

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

stage('QA checks') {
    steps {
        recordIssues([
            enabledForFailure: true,
            tools: [php()]
        ])
    }
}

并在构建页面上显示结果(“PHP 运行时:无警告”)。但是那么其他两个步骤的意义是什么?

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

stage('QA checks') {
    steps {
        scanForIssues([...])
        recordIssues([...])
        publishIssues([...])
    }
}
4

2 回答 2

11

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

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

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

文档中:

高级管道配置

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

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

除了接受的答案之外,可能还有一些关于如何使用插件的信息。

Jenkins官方步骤文档也是查看警告 NG 插件的好地方。以下示例来自警告 NG Github 存储库


publishIssues:发布由静态分析扫描创建的问题

publishIssues issues: [checkstyle]

recordIssues:记录编译器警告和静态分析结果

recordIssues enabledForFailure: true, aggregatingResults: true, tool: checkStyle(pattern: 'checkstyle-result.xml')

scanForIssues:扫描文件或控制台日志以查找警告或问题

scanForIssues tool: checkStyle(pattern: '**/target/checkstyle-result.xml')

scanForIssues以下示例应显示和之间的区别publishIssues

sh "${mvnHome}/bin/mvn --batch-mode -V -U -e checkstyle:checkstyle pmd:pmd pmd:cpd findbugs:findbugs"

def checkstyle = scanForIssues tool: checkStyle(pattern: '**/target/checkstyle-result.xml')
publishIssues issues: [checkstyle]
于 2021-04-14T11:17:31.360 回答