自由式项目与詹金斯管道之间的区别

Jar*_*red 29 jenkins jenkins-plugins jenkins-pipeline

在尝试创建新项目时,我对jenkins中的Freestyle项目和管道感到有些困惑.

我什么时候应该用Freestyle项目创建项目?在哪种情况下我应该使用管道?

我是否需要将config.xml存储到代码存储库中以备将来导入?或任何其他用途?

谢谢你的帮助.

bur*_*ttk 26

如果您在过去使用jenkins而不使用Jenkins文件,那么您使用的东西更类似于自由式项目.

如果你讨厌在CI系统中输入东西,因此想要使用管道作为代码 - 你将所有CI配置放入源代码控制(Jenkinsfile)中的文件中,让Jenkins读取该文件以确定要做什么 - 使用管道.一旦你了解了管道,就不会有很多你喜欢自由式项目的情况.


Jef*_*ime 7

区别在于,在Pipeline中,我们能够将工作分解为不同的阶段,并且我们可以具有任何阶段来表示我们用于部署软件的过程,当然,如果出现任何问题,我们可以看到哪个阶段有问题;例如。在进行下一步之前,我们甚至可以添加验证。我们具有并行运行阶段的能力,因此我们可以非常容易地在单独的分支中执行多个测试。


osh*_*csd 5

我认为 Jenkins Freestyle 项目和 Pipeline 之间的主要区别是 GUI 与脚本的使用。

以下是更详细的一些差异

自由式项目

  • 使用 GUI 添加不同的阶段和步骤
  • 更适合不太复杂的场景
  • 适合刚开始使用 Jenkins/CI 解决方案的人
  • 当您的场景变得更加复杂时,可能会很难实现您想要的目标

管道工作

  • 使用代码(Groovy 语言 - 这是一种类似 Java 的语言)来给出指令
  • 因为,一个脚本中的所有内容都可以保留在源代码管理中,并且能够随时恢复到早期版本或跟踪对脚本所做的更改
  • 整个管道由步骤组成(例如:构建、测试、部署等..)
  • 使用 Jenkinsfile 创建

Jenkinsfile 可以是以下两种类型之一

  1. 声明式管道(需要蓝海插件才能使用图形管道编辑器)
  2. 脚本化管道

config.xml 的用法

您可以将 config.xml 附加到 jenkins url 的末尾(在浏览器中),并以 xml 文件形式查看与该作业相关的所有信息。对于没有该作业的写访问权限的用户来说,这也是可能的。不确定为什么需要将其存储在源代码中。

自由式还是管道式?

在我看来,如果您有 Jenkins 的经验,请选择管道。但是,如果您是第一次使用它或者没有太多经验,那么从 Freestyle 项目开始是一个好主意,最终您可以将其转换为管道并实现更复杂的东西。

希望这可以帮助 :)