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

Cha*_*les 23 continuous-integration jenkins jenkins-plugins

如何在源代码旁边维护SCM中的Jenkins作业配置?

随着源代码的发展,作业配置也在不断发展.能够将作业配置保留在SCM中是理想的,具有以下优点:

  • 很容易看出谁有变化的历史,包括作者和描述
  • 能够通过检查修订版并构建正常工作来重建旧的分支/标记
  • 无需滚动UI以查找相应的部分并进行更改

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

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

Wil*_*hes 12

更新2016: Jenkins现在提供了一个Jenkins 文件,它提供了这个.这是由核心Jenkins开发人员支持并积极开发的.

优点:

创建一个已签入源代码管理的Jenkins文件,可以提供许多直接的好处:

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

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

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

使用单个测试脚本

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

$ bash run_tests.sh
Run Code Online (Sandbox Code Playgroud)

然后,您可以将run_tests.sh文件签入SCM仓库,现在您正在跟踪运行测试的更改.但是,这不会跟踪任何插件的配置.

同样,如果您使用Maven,Maven项目插件只会为您的仓库运行指定的目标.

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

跟踪Jenkins配置的更改

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

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

从SCM编写Jenkins配置

您提到的Jenkins作业构建器项目允许您将配置更改检查到SCM并将它们应用于您的Jenkins实例.同样,这是在Jenkins实例上的所有项目中.

从另一个工作写Jenkins配置

您可以将Job DSL插件与groovy脚本的repo一起使用.Jenkins然后轮询该repo,执行groovy脚本,创建作业配置.

讨论

问题996(现已关闭)讨论了这一点,并且在邮件列表中也讨论过:"跟踪Hudson的配置更改",以及"在svn中保存hudson配置".