如何在源代码旁边维护SCM中的Jenkins作业配置?
随着源代码的发展,作业配置也在不断发展 . 能够将作业配置保留在SCM中是理想的,具有以下优点:
-
容易看出谁有变化的历史,包括作者和描述
-
能够通过签出修订版并构建正常工作来重建旧的分支/标记
-
无需滚动UI以查找相应的部分并进行更改
我看到有一个Jenkins Job Builder插件 . 我更喜欢Travis CI的解决方案,其中作业配置保存在YAML文件(.travis.yml)中 . 有什么好建议吗?
注意:我们的大多数项目都使用Java和Maven .
2 回答
Update 2016: Jenkins现在提供Jenkinsfile,它提供了这一点 . 这是由核心Jenkins开发人员支持并积极开发的 .
优点:
我这样做了written a plugin!
除了我的插件,你有一些(有限的)选项与现有的Jenkins插件:
使用单个测试脚本
如果您将Jenkins配置为只运行:
然后,您可以将
run_tests.sh
文件签入SCM仓库,然后跟踪任何插件的配置 .同样,如果您使用Maven,Maven Project Plugin只会为您的仓库运行指定的目标 .
Literate Plugin确实允许Jenkins在README.md中运行命令,但它尚未发布 .
跟踪对Jenkins配置的更改
您可以使用SCM Sync configuration plugin将配置更改写入SCM,因此您至少拥有持久记录 . 这是Jenkins实例上所有项目的全局 .
还有job config history plugin,它存储文件系统上的配置历史记录 .
从SCM编写Jenkins配置
您提到的Jenkins job builder项目允许您检查配置更改到SCM并将它们应用于您的Jenkins实例 . 同样,这是在Jenkins实例上的所有项目中 .
从另一个作业写出Jenkins配置
您可以将Job DSL Plugin与groovy脚本的repo一起使用 . Jenkins然后轮询该repo,执行groovy脚本,创建作业配置 .
讨论
Issue 996(现已结束)对此进行了讨论,并在邮件列表中进行了讨论:'Keeping track of Hudson's configuration changes'和'save hudson config in svn' .
你可以用workflow plugin以及更多来完成这一切 . 工作流程是使用jenkins的最先进的技术之一,它有非常强大的支持 .
它基于一个groovy DSL,允许您将整个配置保留在您选择的SCM中(例如GIT,SVN ......) .