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

时间:2015-02-03 04:21:01

标签: jenkins continuous-integration jenkins-plugins

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

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

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

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

注意:我们的大多数项目都使用Java&行家。

2 个答案:

答案 0 :(得分:10)

2016年更新:Jenkins现在提供Jenkinsfile,提供了这一点。这是由核心Jenkins开发人员支持并积极开发的。

优点:

  

创建一个Jenkins文件,它被检入源代码控制,提供了许多直接的好处:

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

written a plugin这样做了!

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

使用单个测试脚本

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

$ bash run_tests.sh

然后,您可以将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'

答案 1 :(得分:2)

你可以使用workflow plugin以及更多内容完成所有操作。工作流程是使用jenkins的最先进的技术之一,它有很强的支持。

它基于一个groovy DSL,允许您将整个配置保留在您选择的SCM中(例如GIT,SVN ......)。

相关问题