Jenkins中自由风格项目和流水线项目的区别

53

当我尝试创建新项目时,关于Freestyle项目和Jenkins中的pipeline,我有点困惑。

在什么情况下应该使用Freestyle项目创建项目?在哪些情况下应该使用pipeline?

我需要将“config.xml”存储到代码仓库以备将来导入吗?还是有其他用途?

谢谢您的帮助。

7个回答

45

如果你以前使用Jenkins时没有使用过Jenkinsfile,那么你所使用的就更像自由风格项目。

如果你讨厌在CI系统中输入命令并希望使用管道作为代码——将所有CI配置放入源代码控制文件中(Jenkinsfile),并让Jenkins读取该文件以确定要执行的操作——请使用管道。一旦你了解了管道,就很少会选择自由风格项目了。


14

不同之处在于Pipeline可以将作业分解成不同的阶段,我们可以任意设置这些阶段来表示我们用于部署软件的流程。当出现问题时,我们可以看到哪个阶段有问题。例如,我们甚至可以在继续之前添加验证。我们可以并行运行阶段,因此我们可以轻松地在不同的分支中执行多个测试。


5
我认为Jenkins自由风格项目与Pipeline之间的主要区别是GUI使用与脚本编写。
以下是更详细的差异:
自由风格项目
- 使用GUI添加不同阶段和步骤 - 更适合不太复杂的场景 - 适合刚开始使用Jenkins / CI解决方案的人 - 当场景变得更加复杂时,可能难以实现所需功能
管道作业
- 使用代码(Groovy语言-类似于Java),给出指令 - 由于所有内容都在一个脚本中,因此可以将其保留在源代码控制中,并随时还原到早期版本或跟踪对脚本所做的更改 - 整个流水线由步骤组成(例如:构建、测试、部署等) - 使用Jenkinsfile创建
Jenkinsfile可以是以下两种类型之一:
1.声明性管道(需要Blue Ocean插件才能使用图形化流程编辑器)
2.脚本化管道
配置文件(config.xml)的使用
您可以在Jenkins URL的末尾追加config.xml(在浏览器中),并查看与该作业相关的所有信息作为xml文件。即使用户没有该作业的写入访问权限,这也是可能的。我不确定为什么需要将其存储在源代码中。
自由风格还是管道?
在我看来,如果您有一些Jenkins经验,请选择Pipeline。但是,如果您第一次使用它或没有太多经验,则从自由风格项目开始是一个好主意,并最终将其转换为管道,实现更复杂的任务。
希望这有所帮助 :)

3
如果你是开发人员,编写流水线代码将会更加舒适和自然。如果你是DevOps专业人员,维护你的流水线将更容易,因为你可以像处理其他驱动核心流程的代码一样处理它。

1
如果您想实现CI CD流水线的UCD工具,请尝试添加Retrofit插件。

0
另一个你可以考虑的方面是,你在文件中编写代码。因此,你可以将它存储在Git服务器上,以便保留旧的工作并随时访问。

-1
我们可以说自由风格项目和Pipeline之间的主要区别。使用Pipeline,您可以使用Ruby程序编写Jenkins文件,从而可以配置CI/CD。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接