您如何与源代码一起在SCM中维护Jenkins作业配置?
随着源代码的发展,作业配置也随之发展。能够将作业配置保留在SCM中是理想的,因为有以下好处:
我看到有一个Jenkins Job Builder插件。我更喜欢按照Travis CI的解决方案,其中作业配置保存在YAML文件(.travis.yml)中。有什么好的建议吗?
注意:我们的大多数项目都使用Java和Maven。
2016年更新: Jenkins现在提供了一个Jenkinsfile来提供此功能。这得到了詹金斯核心开发人员的支持并积极开发。
优点:
创建Jenkinsfile(已检入源代码管理)具有许多直接的好处: 管道上的代码审查/迭代 管道的审计跟踪 管道的唯一事实来源,可以由项目的多个成员查看和编辑。
创建Jenkinsfile(已检入源代码管理)具有许多直接的好处:
我写了一个插件来做到这一点!
除了我的插件外,现有的Jenkins插件还有一些(有限)选项:
如果您将Jenkins配置为仅运行:
$ bash run_tests.sh
然后,您可以将run_tests.sh文件检入SCM存储库,并且现在正在跟踪运行测试方式的更改。但是,这不会跟踪任何插件的配置。
run_tests.sh
同样,如果您使用的是Maven,则Maven项目插件只需为您的存储库运行指定的目标。
在识字的插件确实允许詹金斯在README.md运行的命令,但它尚未被释放。
您可以使用SCM Sync配置插件将配置更改写入SCM,因此至少要有一个永久记录。这是Jenkins实例上所有项目中的全局项目。
还有一个作业配置历史记录插件,它将配置历史记录存储在文件系统上。
您提到的Jenkins作业构建器项目使您可以将配置更改检入SCM,并将其应用于您的Jenkins实例。同样,这涉及您Jenkins实例上的所有项目。
您可以将Job DSL插件与常规脚本回购结合使用。然后,Jenkins轮询该仓库,执行常规脚本,从而创建作业配置。
发行版996(现在已关闭)对此进行了讨论,并且也在邮件列表中进行了讨论:“跟踪Hudson的配置更改”和“将hudson config保存在svn中”。