使用声明性管道(Jenkinsfile)在Jenkins中发布静态代码度量报告

问题描述 投票:0回答:1

我正在使用Jenkinsfile在Jenkins中为我的python代码构建一个简单的CI管道,它基本上完成以下任务:

  1. 创建测试环境并安装依赖项。
  2. 运行静态代码指标:
    • 各种原始指标:SLOC,注释行,空白行,圈复杂度,可维护性指数等。
    • 使用覆盖率测试覆盖率报告
    • 使用pylint的错误和样式检查
  3. 测试提取的源代码(单元测试)

因此,例如,对于“静态代码指标”,我处于这个阶段:

...
        stage('Static code metrics') {
            steps {
                echo "Raw metrics"
                sh  ''' radon raw --json my_python_repo/ > raw_report.json
                        radon cc --json my_python_repo/ > cc_report.json
                        radon mi --json my_python_repo/ > mi_report.json
                        //TODO: add conversion and HTML publisher step
                    '''
            }
        }

...

如上所述,报告以.json格式保存。 我需要找出一种在Jenkins仪表板上以直观的方式发布这些报告的方法。步骤之一是将.json文件转换为HTML,然后使用HTML Publisher插件发布报告,但我不知道使用哪种工具。如果有解决方法,或者以其他方式在jenkins仪表板上发布这些报告,请提供解决方案。

让我们说mi_report.json的内容是:

 {"my_python_repo/code.py": {"mi": 16.42950884051172, "rank": "B"}, "my_python_repo/test.py": {"mi": 33.532817596089814, "rank": "A"}}
jenkins continuous-integration jenkins-pipeline jenkins-plugins devops
1个回答
1
投票

[尚无Jenkins就绪工具可将自定义JSON发布为HTML。但是您可以使用warnings插件以Jenkins方式发布指标。Here small instruction on how to configure Jenkins to parse radon reports

© www.soinside.com 2019 - 2024. All rights reserved.