2017-07-28 34 views
1

我想显示当前版本和Jenkins上最新的已知成功版本之间的非代码差异。如何显示Jenkins构建的两个jenkins之间的配置差异?

通过非代码差异我的意思的东西,如:

  • 环境变量(包括詹金斯参数)(set),可能与一些过滤
  • 版本的系统工具包(rpm -qa | sort
  • 版本安装(pip freeze

虽然我知道如何保存和存档这些文件的一部分Python包构建,唯一不清楚的部分是如何生成关于当前构建和上一次成功构建之间发现差异的差异/变更报告。

请注意,我正在寻找一个管道兼容解决方案,理想情况下,我宁愿在Jenkins UI上轻松访问此报告,就像我们目前与SCM更新日志一样。或者为了改变这种情况,我如何创建构建清单并将其与最后一个已知的成功清单进行比较?如果有人知道一个标准的清单格式,可以很容易地用来组合所有这些信息,这将是伟大的。

回答

0

你总是问最漂亮的问题,好工作。 :)

我们总是尝试尽可能多地将代码推入代码,因为您使用非代码配置描述的同类缺乏可跟踪性。我们从使用Jenkinsfiles开始,因此我们捕获了很多构建配置(以仍然显示源代码管理变化的方式)。对于系统工具包,我们通过使用docker以及从docker基础映像的特定标记继承来将其应用到应用程序中。所以即使我们想要更改系统软件包甚至是python版本,也会在应用程序的Dockerfile中更新FROM行。即使是环境变量也可以通过docker进行微观管理,以解决您的其他示例。关于我们如何尝试在https://jenkins.io/blog/2017/07/13/speaker-blog-rosetta-stone/处回避您的问题,有更多详情。

总会有些东西难以捕捉为代码,因此构建仍然会失败并且很难偶尔调试,所以我希望有人能够用干净的解决方案来解决您的问题。