目前,我有一个多重班心管道作业,在该作业中发生构建,并且使用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'
}
}