如何使用Jenkinsfile本身将CPPCHECK.XML发布在Jenkins上



目前,我有一个多重班心管道作业,在该作业中发生构建,并且使用cppcheck来分析代码。但是,多核管管道中没有可用的"后构建操作"选项卡来启用"发布cppcheck结果"。我一直在互联网上搜索答案,但我找不到。

只有一般,构建触发器,高级项目选项和管道选项卡(我车臣了高级项目选项,也没有选项可以在此处添加邮政版本)。

有没有办法使用jenkinsfile本身进行硬码cppcheck.xml发布?我可以使用任何语法可以调用CPPCHECK插件来检查XML文件并发布它。这确实是紧急要求。我尝试搜索很多,以将XML转换为HTML或JNUIT XML等其他格式。似乎没有任何作用。有人可以帮忙吗?

为此

自版本3.8以来,您可以在Jenkins的系统配置部分中动态定义新的解析器。只需导航到http://[jenkins-url]/配置并在编译器警告中创建一个新的解析器。UI应该是自我解释的

而不是XML,使用此命令行生成文本文件:

cppcheck --enable=all --template="{file},{line},{severity},{id},{message}" . 2> cppcheck.txt

这是模板的帮助参数:

--template='<text>'  Format the error messages. E.g.
                     '{file}:{line},{severity},{id},{message}' or
                     '{file}({line}):({severity}) {message}' or
                     '{callstack} {message}'
                     Pre-defined templates: gcc, vs, edit.

更多信息可以在CPPCHECK PDF手册中找到。

我正在使用此正则表达式解析文件:

^(.+),(d+),(error|warning|style|performance|portability|information),(.*),(.*)$

更新

警告插件达到了寿命。所有功能已集成到下一代插件中。

使用此新插件,Cppcheck得到了支持,而无需自定义解析器。

使用此命令行生成XML文件:

cppcheck --xml --xml-version=2 . 2> cppcheck.xml

在您的jenkinsfile中,您需要添加此行以扫描文件中的警告或问题:

scanForIssues tool: cppCheck(pattern: 'cppcheck.xml')

当前cppcheck插件不支持管道。

但是,插件有一个拉动请求

https://github.com/jenkinsci/cppcheck-plugin/pull/36

可以随意克隆并进行更多测试。

在2017年11月,Jamesd提及的拉动请求已合并。

如果您查看管道文档,现在有一个htmlpublisher命令。

请注意,XML必须先前生成,并且下面使用的模式参数从>%workspace% path搜索文件。

stage('CppCheck') {
    steps {                       
        publishCppcheck pattern:'output/bin/Release/report_cppcheck.xml'
    }    
}

最新更新