我想显示当前版本与Jenkins上最新已知的成功版本之间的非代码差异。
非代码差异我的意思是:
set
),可能带有一些过滤器rpm -qa | sort
)pip freeze
)虽然我知道如何将这些文件保存和存档作为构建的一部分,但唯一不清楚的部分是如何生成关于当前构建与上次成功构建之间发现的差异的差异/变更报告。
请注意,我正在寻找与管道兼容的解决方案,理想情况下,我更愿意在Jenkins UI上轻松访问此报告,就像我们目前使用SCM更改日志一样。
或者重新说明一下,如何创建构建清单并将其与最后一个已知的成功清单区分开来?如果有人知道可以轻松用来组合所有这些信息的标准清单格式,那就太棒了。
答案 0 :(得分:0)
你总是问最讨人喜欢的问题,干得好。 :)
我们总是尝试尽可能多地将代码推送到代码中,因为您使用非代码配置描述的同样缺乏可跟踪性。我们从使用Jenkinsfiles开始,因此我们在那里捕获了很多构建配置(以某种方式仍显示源代码控制中的更改)。对于系统工具包,我们通过使用docker并从docker基础映像的特定标记继承来进入应用程序。因此,即使我们想要更改系统包甚至python版本,例如,这将显示为应用程序的Dockerfile中FROM行的更新。甚至环境变量也可以通过docker进行微观管理,以解决您的其他示例。有关我们如何在https://jenkins.io/blog/2017/07/13/speaker-blog-rosetta-stone/回避您的问题的详细信息。
总会有很多东西难以作为代码捕获,因此构建仍然会失败并且偶尔难以调试,所以我希望有人能够为您的问题提供一个干净的解决方案。