完全在正在构建的项目中保持可重用的Jenkins Build配置

时间:2017-04-05 13:29:15

标签: jenkins jenkins-pipeline

我的公司正在开发医疗级SAAS应用程序。我们使用Jenkins并拥有整个构建流程,部署到云,在那里进行集成测试以及取消部署。

因为我们属于联邦法规,所有都会受到审核,包括构建过程。

目前,我们使用Jenkins 1.x和Job DSL插件,允许我们自动配置Jenkins作业。这不是非常可审计的,因为Jenkins的配置仍在改变,所以我们今天可能不会像一个月前那样建立相同的方式。我们真的需要从Jenkins配置中获取“如何构建这个”知识,并将其作为我们的源代码提供到相同的Git存储库中。

我一直在调查Jenkins 2.x与Pipelines的使用。我已经开始用Pipeline格式重新编写旧的DSL作业,并将它们存储在与源相同的Git仓库中。但是,我们需要可重用性。多个步骤通常在其中具有相同的代码,我们甚至需要多个管道(例如,一个用于构建,部署和测试,另一个用于构建)。因此,我希望我的代码可以重用。

我希望我可以将我的Git repo中的目录添加到管道类路径并存储所有常见的东西,但似乎不可能。我怀疑这是某种沙盒安全问题的一部分,但是这些类的安全性是否比同一个Git工作区中的jenkins文件更不安全?

詹金斯有'共享库'概念,但这失败了 - 它将构建配置存储在Jenkins而不是源代码中。

如何在Jenkins管道中进行代码重用,以便审核员可以在源代码树中查看所有(或至少大部分)Jenkins构建代码?

[编辑]我需要明确一个要求。我需要根据我正在构建的源代码版本更改Jenkins构建项目的方式。例如,当我们削减里程碑时,即使我们改进主线构建,我们也需要里程碑构建以始终以相同的方式构建。这就是为什么我如此坚持保持所有Jenkins配置,我可以在与正在构建的项目相同的存储库中。

1 个答案:

答案 0 :(得分:0)

一种解决方案可能是使用thinBackup之类的插件,并让工具根据您的构建计划后的计划备份您的Jenkins配置。

备份可以保存到源控制文件夹中,并通过提交进行存档。

一个很好的副作用是你可以随时恢复你所做的特定构建的完整Jenkins配置。

Please see this link.