一尘不染

我可以将Jenkins配置存储在项目存储库中(例如Travis CI)吗?

jenkins

您如何与源代码一起在SCM中维护Jenkins作业配置?

随着源代码的发展,作业配置也随之发展。能够将作业配置保留在SCM中是理想的,因为有以下好处:

  • 易于查看谁的更改历史记录,包括作者和描述
  • 能够通过检出修订版本来重建旧的分支/标记并构建正常的工作
  • 无需滚动UI来找到合适的部分并进行更改

我看到有一个Jenkins Job Builder插件。我更喜欢按照Travis CI的解决方案,其中作业配置保存在YAML文件(.travis.yml)中。有什么好的建议吗?

注意:我们的大多数项目都使用Java和Maven。


阅读 313

收藏
2020-07-25

共1个答案

一尘不染

2016年更新:
Jenkins现在提供了一个Jenkinsfile来提供此功能。这得到了詹金斯核心开发人员的支持并积极开发。

优点:

创建Jenkinsfile(已检入源代码管理)具有许多直接的好处:

  • 管道上的代码审查/迭代
  • 管道的审计跟踪
  • 管道的唯一事实来源,可以由项目的多个成员查看和编辑。

写了一个插件来做到这一点!

除了我的插件外,现有的Jenkins插件还有一些(有限)选项:

使用单个测试脚本

如果您将Jenkins配置为仅运行:

$ bash run_tests.sh

然后,您可以将run_tests.sh文件检入SCM存储库,并且现在正在跟踪运行测试方式的更改。但是,这不会跟踪任何插件的配置。

同样,如果您使用的是Maven,则Maven项目插件只需为您的存储库运行指定的目标。

识字的插件确实允许詹金斯在README.md运行的命令,但它尚未被释放。

跟踪对Jenkins配置的更改

您可以使用SCM Sync配置插件将配置更改写入SCM,因此至少要有一个永久记录。这是Jenkins实例上所有项目中的全局项目。

还有一个作业配置历史记录插件,它将配置历史记录存储在文件系统上。

从SCM编写Jenkins配置

您提到的Jenkins作业构建器项目使您可以将配置更改检入SCM,并将其应用于您的Jenkins实例。同样,这涉及您Jenkins实例上的所有项目。

从另一个工作中编写Jenkins配置

您可以将Job DSL插件与常规脚本回购结合使用。然后,Jenkins轮询该仓库,执行常规脚本,从而创建作业配置。

讨论区

发行版996(现在已关闭)对此进行了讨论,并且也在邮件列表中进行了讨论:“跟踪Hudson的配置更改”“将hudson config保存在svn中”

2020-07-25