我正在使用Jenkinsfile在Jenkins中为我的python代码构建一个简单的CI管道,它基本上完成以下任务:
- 创建测试环境并安装依赖项。
- 运行静态代码指标:
- 各种原始指标:SLOC,注释行,空白行,圈复杂度,可维护性指数等。
- 使用覆盖率测试覆盖率报告
- 使用pylint的错误和样式检查
- 测试提取的源代码(单元测试)
因此,例如,对于“静态代码指标”,我处于这个阶段:
...
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就绪工具可将自定义JSON发布为HTML。但是您可以使用warnings插件以Jenkins方式发布指标。Here small instruction on how to configure Jenkins to parse radon reports。