当前位置: 首页 > 面试题库 >

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

谭裕
2023-03-14
问题内容

您如何与源代码一起在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作业构建器项目使您可以将配置更改检入SCM,并将其应用于您的Jenkins实例。同样,这涉及您Jenkins实例上的所有项目。

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

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

讨论区

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



 类似资料:
  • 问题内容: 我正在尝试配置Jenkins(在Windows Server2008上运行)以连接到GitLab6.0存储库(在Linux机器上)。 在本地窗口框中,我可以使用SSH URL在GitLab服务器上克隆项目。我在使用HTTP URL时遇到了一些问题,但是我确实设法使用Eclipse插件通过HTTP与身份验证进行连接。 在Jenkins项目配置屏幕上,我尝试过: http://myserv

  • 问题内容: 我正在尝试将非默认URL设置为安装Jenkins的木偶脚本的一部分。我知道如何通过Web UI编辑值,但似乎找不到实际存储值的位置。我已经浏览了jenkins_home文件夹和apache,但尚未找到它。 问题答案: 它将其存储在一个不太可能的位置:在Jenkins主文件夹中。

  • 我们的Jenkins实例中有很多管道,它们的源代码位于私有git服务器中,因此所有路径都是

  • 我已经实现了一个maven库,并将其发布到GitHub。现在我想使用这个存储库作为原型来创建另一个maven项目(没有maven中央回购),如下所示 当我尝试这个时,它给出了以下错误 有什么办法可以做到这一点吗?

  • 我开发了几个电子商务网站,最近我注意到了axonframework。我正在考虑如何用AxonFramework实现一个新的电子商务站点。 null 提前谢了。

  • 问题内容: 我想使用两个Git存储库构建一个项目。其中一个包含源代码,而另一个包含构建和部署脚本。 我的问题是我需要一个用于构建和部署项目不同部分(大型项目,多个存储库,相同的构建和部署脚本)的存储库,但是Jenkins似乎无法处理此问题(或者我不知道)不知道/找不到方法)。 问题答案: 更新 现在不建议使用多个SCM插件,因此用户应该迁移到Pipeline插件。 旧答案 是的,詹金斯可以处理。只