2016-06-14 160 views
7

现在多分支管道作业类型已经成熟,是否有任何理由再使用简单的管道作业类型?即使你今天只有一个分支,在将来考虑多个分支的可能性可能也是明智的,那么对于Jenkins管线而言,使用Pipeline作业类型与始终使用多分支管线作业类型的动机是什么,假设你正在将你的Jenkinsfile存储在SCM中?现在这两种工作类型之间是否有功能平等?多分支管道与管道作业

回答

3

在CI/CD情况下,可能不希望将每个分支发送到目标环境。使用管道并指定单个分支将允许您过滤并仅将/ master发送到暂存或生产环境。多分支将有助于将任何分支上的任何更改专门发送到测试环境。另一方面,如果QA /自动测试过程足够彻底,则将任何分支发送到生产的风险可以接受。

1

根据我的多分支管道经验,唯一的缺点是您无法看到Jenkins主页上的最后一个成功/失败/持续时间列。他们只在Jenkins的首页上显示“NA”,因为它在技术上是一个子作业的“文件夹”。

除此之外,我不能想到使用多分支的任何其他“缺点”。

我不同意其他答案......那种情况是多分支发送“任何”分支的变化。这不一定是真的。如果Jenkinsfile存在于随机特性分支上,但该分支未在管道中定义,那么使用典型的if/else条件就不能对其做任何处理。

例如:

node { 
    checkout scm 
    def workspace = pwd() 

    if (env.BRANCH_NAME == 'master') { 
    stage ('Some Stage 1 for master') { 
     sh 'do something' 
    } 
    stage ('Another Stage for Master') { 
     sh 'do something else here' 
    } 
    } 

    else if (env.BRANCH_NAME == 'stage') { 
    stage ('Some stage branch step') { 
     sh 'do something' 
    } 
    stage ('Deploy to stage target') { 
     sh 'do something else' 
    } 
    } 

    else { 
    sh 'echo "Branch not applicable to Jenkins... do nothing"' 
    } 
}