首页 文章

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

提问于
浏览
20

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

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

  • 容易看出谁有变化的历史,包括作者和描述

  • 能够通过签出修订版并构建正常工作来重建旧的分支/标记

  • 无需滚动UI以查找相应的部分并进行更改

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

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

2 回答

  • 2

    Update 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' .

  • 9

    你可以用workflow plugin以及更多来完成这一切 . 工作流程是使用jenkins的最先进的技术之一,它有非常强大的支持 .

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

相关问题