詹金斯多分支管道项目与管道项目

时间:2020-01-09 10:18:51

标签: jenkins jenkins-pipeline

这可能是一个简单的问题,但是在Pipeline项目中使用声明性管道管理多分支(dev-test-master)与选择Multibranch管道项目之间的主要区别是什么?

我想根据分支变量将应用程序部署到Kubernetes环境。我应该使用哪种项目类型来遵循最佳实践,或者哪种类型易于管理?我想我可以做同样的事情,并且在Pipeline项目中仅管理一个Jenkinsfile即可管理我的分支和部署环境。

1 个答案:

答案 0 :(得分:2)

使用Multibranch,每个分支可获得一个Jenkinsfile。没有它,您就不会。那是主要的区别。

使用每个分支的文件,您可以具有关于如何精确构建此分支的单独说明(“配置为代码”概念)。例如。如果您有5个容器,则可能有五个“构建容器X”阶段(可以并行运行)和五个“测试容器X”阶段(同上)。在新分支中,您将开发一个新容器,因此在那个分支的Jenkinsfile中,您现在可能具有六个构建和六个测试阶段,而不是五个。现在,在源代码控制下,任何从常规分支派生的分支都将继承其Jenkinsfile(并构建/测试5个容器),而此新分支上的任何分支都将继承那个 Jenkinsfile(并进行构建/ test 6个容器)而无需进行任何更改。

使用一个Jenkins文件,这可能很快就会令人费解。

这与您可以检查并以不同方式作用的分支变量完全正交。在我们的环境中,我们都有:每个分支都有一个Jenkinsfile,并检查所有Jenkinsfiles中的branch变量。这样可以最大程度地减少合并工作。