【问题标题】:How can i make the cppcheck.xml to be published on jenkins using the jenkinsfile itself?我怎样才能使 cppcheck.xml 使用 jenkinsfile 本身在 jenkins 上发布?
【发布时间】:2017-09-13 11:49:36
【问题描述】:

目前我有一个多分支管道作业,其中发生了构建,并且 cppcheck 用于分析代码。但是,多分支管道中没有可用的“构建后操作”选项卡来启用“发布 cppcheck 结果”。我一直在互联网上寻找答案,但我找不到。

只有常规、构建触发器、高级项目选项和管道选项卡可用(我检查了高级项目选项,没有添加后期构建部分的选项)。

有没有办法使用 jenkinsfile 本身对 cppcheck.xml 发布进行硬编码?有没有我可以使用的语法来调用 cppcheck 插件来检查 xml 文件并发布它。这确实是一个紧急需求。我尝试了很多搜索以将 xml 转换为其他格式,例如 html 或 jnuit xml 。似乎没有任何效果。有人可以帮忙吗?

【问题讨论】:

  • 最后..我使用cppcheck_html属性创建了一个html报告并发布在jenkins上。

标签: jenkins groovy jenkins-pipeline cppcheck multibranch-pipeline


【解决方案1】:

为此,我将 Jenkins Warnings Plugin 与自定义解析器一起使用。

从 3.8 版开始,您可以在 Jenkins 的系统配置部分动态定义新的解析器。只需导航到 http://[jenkins-url]/configure 并在 Compiler Warnings 部分中创建一个新的解析器。用户界面应该是不言自明的

使用以下命令行生成一个文本文件,而不是 XML:

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

这里是 template 参数的帮助:

--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 manual 中找到。

我正在使用这个正则表达式来解析文件:

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

更新

警告插件已终止使用。所有功能都已集成到Warnings Next Generation Plugin

有了这个新插件,无需自定义解析器即可支持 cppcheck。

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

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

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

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

【讨论】:

    【解决方案2】:

    目前 CPPCheck 插件不支持流水线。

    然而,插件有一个拉取请求

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

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

    【讨论】:

    • 那很不幸。我会检查的。谢谢你的回答。
    【解决方案3】:

    2017 年 11 月,JamesD 提到的 pull request 被合并。

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

    请注意,xml 必须事先生成,并且下面使用的模式参数从 %WORKSPACE% 路径搜索文件。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      • 2023-01-18
      • 2020-08-24
      • 2015-10-05
      • 1970-01-01
      相关资源
      最近更新 更多