Jenkins 流水线配置历史插件介绍

本文首发于:Jenkins 中文社区markdown

原文连接    做者:pch-maintainersoop

译者:Donghui Wangui

Jenkins 流水线配置历史插件介绍

Jenkins 流水线配置历史插件,让流水线变动可追溯spa

sunset

流水线是在 Jenkins 中建立任务的有效的和现代的方式。 为了快速、简单地识别流水线变动,咱们开发了流水线配置历史插件。 这个插件检测流水线的变动,并为用户提供一个选项,以明显地、可追溯地查看流水线配置两次构建(差别)之间的变动。插件

一切是如何开始的

这一切开始于十年以前 —— 经典的任务类型 (例如:自由风格、Maven 等等)。 每隔一段时间,用户就会联系咱们,由于他们的任务没法在一晚上之间完成。 为何这个任务失败了呢? 此次失败和任务配置变动有关系吗? 用户典型的回答是:”咱们没有改任何东西”,但这是真的吗? 咱们思考了这个问题,并决定开发一个插件来帮助咱们解决这个问题。 这就是plugin:jobConfigHistory[任务配置历史]的想法和开始。代理

如今能够查看任务配置的变动(例如其余分支、JDK版本等),并且更常见的状况是,破坏构建的缘由是任务配置的变动。code

Screenshot of Job Configuration History

多年来,该插件获得了开发,目前仍在开发中。 添加了新的功能,不只能够查看任务配置,还能够查看全局和代理配置的变动。 还能够恢复旧的配置版本。 现在,这个插件已经有超过30,000次安装量。 多年来,JobConfigHistory 减轻了咱们的平常工做 —— 咱们有超过3000个 Jenkins 任务! 而后出现了一种新的任务类型:流水线orm

流水线 —— 须要一些新的东西

流水线任务和经典的任务类型有根本地区别。 经典的任务类型是经过 Jenkins GUI 配置的,而流水线任务是配置即代码。 实际上,每一个流水线任务都是经过 Jenkins GUI 建立的,然而这并不必定是流水线配置的位置。 流水线能够被配置:事件

  • 直接在 Jenkins 任务中做为脚本。 代码将直接插入任务配置页面。
  • 做为源代码管理系统(SCM)中的 Jenkinsfile:流水线配置在 SCM 中的文本文件(Jenkinsfile)中定义。 在任务自己中,只配置了 Jenkinsfile 存储库的路径。 在构建过程当中,Jenkinsfile 从 SCM 中被检出并被处理。
  • 做为共享库:流水线配置的一部分被移动到单独文件中,它能够由多个任务使用。 这些文件也保存在 SCM 中。 即便这样仍然须要 Jenkinsfile(或者任务中的流水线脚本)。

对于任务配置的每次保存操做,若是发生了变动,JobConfigHistory 将建立实际任务配置的副本。 只有当流水线配置做为脚本插入到任务配置页面时,该方法才适用于流水线任务。 JobConfigHistory 未检测到 Jenkinsfile 或共享库中的变动。 您必须使用 SCM 系统查看 Jenkinsfile 或共享库的变动。 在构建时间和对 Jenkinsfile 或共享库的变动之间找到相关性是复杂且耗时的。ip

这个新问题不只仅是 JobConfigHistory。 须要一个新的解决方案来检测流水线变动并显示 Jenkins 中的这些变动。 因此咱们开发了流水线配置历史插件。

在每一个流水线运行期间,Jenkinsfile 和相关的共享库都保存在任务的构建目录中。 流水线配置历史插件将最近运行和前一次运行之间流水线文件的变动保存为历史事件。 所以,当流水线任务以成功的构建结束时,您能够检查任何使用的流水线文件是否发生了变动。 您还能够看到发生变动的构建。

Screenshot of Pipeline Configuration History

由于流水线配置能够由可能发生变动的多个文件组成,因此 diff 中只显示两个构建版本之间发生变动的文件。 这使得整个过程更加紧凑和有效:

Screenshot of Pipeline Configuration History

但有时您可能想要显示的不只仅是流水线文件之间的差别。 您可能但愿查看哪些流水线文件正在使用,或者这些文件在使用时的内容。 所以能够查看全部文件及其内容。 若是须要,您也能够下载:

Screenshot of Pipeline Configuration History

结论

咱们在生产中成功地使用了流水线配置历史插件。 它从第一天起就帮助咱们解决了因为流水线配置变动而出现的问题。 流水线配置历史插件不会替换任务配置历史插件。 插件有不一样的用例。 不少时候,任务或流水线配置上的小变动也会产生很大的影响。 因为任务或流水线配置的变动与不一样的构建行为之间的时间相关性,如今能够大大减小分析构建失败的时间和精力。 任务配置历史和流水线配置历史插件容许咱们在咨询和解决问题方面为用户提供帮助。经过访问任务的配置历史,咱们能够更快地解决问题。这些插件对咱们的平常工做是必不可少的。

相关文章
相关标签/搜索