我正在寻找一种解决方案,可以让我在 Jenkins 中记录和区分以下内容:
- 已安装的系统包(如 rpms)
- 已安装的 pip 包 (pip freeze/list) - 可以是多个:系统或一个或多个虚拟环境。
- 构建期间使用的外部系统或服务的 API 版本。示例:JIRA、PYPI
虽然将此类命令的输出保存在文本文件中并配置 ArtefactArchiver 以存档它们很容易,但这并不能让我用这些来扩展更改日志。
理想情况下,我希望能够使用找到的信息扩展更改日志并显示自上次成功构建以来的更改。
提供此信息对开发人员非常有用,因为构建损坏的主要来源之一不是正在构建的存储库,而是来自生态系统的其他东西。
我认为这通常称为构建清单或物料清单 (BOM),这是一个结构化文件,应该列出所有有助于创建最终构建工件的内容。
显然,我尝试了很多谷歌并调查了 jenkins 的每个插件以找到这个,但到目前为止我无法找到涵盖这个的东西。
我不太关心收集这些信息,这很容易。这个问题的技巧和主题是如何比较它们并在一个漂亮的界面中将它们展示给用户。
PS。大多数构建和测试的包都是 Python,所以我倾向于寻找 Python 解决方案。尽管如此,管道还是 Groovy。我只希望实现这一点不需要编写 Jenkins 插件,因为我想不惜一切代价避免这种情况。
我正在研究的另一个想法是生成一些 junit 格式的假单元测试结果,可用于检查两个不同构建之间的变化。