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

查尔斯

您如何与源代码一起在SCM中维护Jenkins作业配置?

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

  • 易于查看谁的更改历史记录,包括作者和描述
  • 能够通过检出修订版本来重建旧的分支/标签,并且可以正常工作
  • 无需滚动UI来找到合适的部分并进行更改

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

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

威尔弗雷德·休斯

2016年更新: Jenkins现在提供了一个Jenkinsfile来提供此功能。这得到了詹金斯核心开发人员的支持并积极开发。

好处:

创建Jenkinsfile(已检入源代码管理)可带来许多直接好处:

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

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

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

使用单个测试脚本

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

$ bash run_tests.sh

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

同样,如果您使用的是Maven,则Maven项目插件只需为您的存储库运行指定的目标。

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

跟踪对Jenkins配置的更改

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

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

从SCM编写Jenkins配置

您提到Jenkins Job Builder项目可让您将配置更改检入SCM,并将其应用于您的Jenkins实例。同样,这涉及您Jenkins实例上的所有项目。

从另一份工作中编写Jenkins配置

您可以将Job DSL插件与常规脚本回购结合使用。然后,詹金斯(Jenkins)轮询该仓库,执行常规脚本,从而创建作业配置。

讨论区

发行版996(现已关闭)对此进行了讨论,并且也在邮件列表中进行了讨论:“跟踪Hudson的配置更改”“将hudson config保存在svn中”

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以在 Travis 的一个存储库中构建一些项目吗?

我可以将Travis CI的状态作为json响应吗?

可以在存储库之间共享.gitlab-ci.yml吗?

Travis CI可以缓存docker映像吗?

Travis CI构建失败,因为我的项目比git存储库目录低一级

我可以使用Windows服务中在MVC项目中定义的存储库吗?

我可以拒绝travis-ci访问组织吗?

我可以将存储库从VSTS导入VSTS吗

我可以将Codeplex存储库分叉到GitHub吗?

我可以将应用程序数据存储在kubernetes配置资源中吗?

我可以将Azure Devops项目的源存储在bitbucket中吗?

将付费Travis CI用于公共存储库

我可以将Word文档存储在PostgreSQL数据库中吗?

我可以将存储库放入Github上的文件夹中吗?

我可以将JSON存储在Azure密钥保管库中吗

我可以将 HERE 地理编码 API 结果存储到数据库中吗?

我可以将本地存储库推送到两个远程存储库吗?

Travis CI忽略了MAVEN_OPTS吗?

我可以在Gradle中定义自己的本地存储库吗

我可以在Squarespace中存储数据库信息吗

我可以撤消GitHub存储库中的重置提交吗?

我可以将代码转换为NPM模块,而无需将其从项目中提取到其自己的存储库中吗?

我可以将Travis-CI与Tkinter GUI一起使用吗?

我可以信任存储库吗

我可以将Xdebug存储在单独的docker容器中吗?

我可以将Outlook的PST文件存储在Dropbox中吗

我可以将 jQuery 事件存储在变量中吗?

我可以在Firebase数据库中存储项目符号点,其他符号吗?如果是,怎么办?

您可以为travis ci指定次要的jdk版本吗