2016-06-14 179 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"' 
    } 
}