2016-02-11 142 views
0

我有一個jenkins管道設置如下,其中構建A是管道的開始和完成觸發器構建B等(見下文)..到目前爲止,我已經實施構建A ,B和C.我已經使用Jenkins參數化觸發器插件作爲構建後操作來觸發我的構建。詹金斯觸發器建立依賴於構建參數

在Build B完成之後,有沒有什麼可以根據構建B之後生成的構建以什麼參數啓動,如下所示。構建C和構建D是將部署到不同環境的部署構建。因此,如果開發被作爲參數傳遞給Build A,那麼它會調用Build C else,如果測試作爲參數傳遞,它將在Build B之後調用Build D。

一直在四處尋找,無法看到如何做到這一點任何人思想

感謝

Parameterised Build A eg: Params a=1 b=2 
       | 
       | 
Parameterise Build B (uses params from build A) 
       | 
       | 
    ------------------------ 
    |      | 
    |      | 


Build C     Build D 
+0

你可以用[Conditional BuildStep Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Conditional+BuildStep+Plugin)包裝你的參數化觸發器插件調用,它特別能夠比較參數值任意字符串。 – izzekil

+0

嘗試BuildFlow插件。 https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin – Jayan

回答

0

我這樣做是採用柔性出版商插件,並使用該參數名稱regualr表達式來決定哪些建設觸發。類似於我認爲的條件插件

0

您可以使用Pipeline Plugin(以前稱爲工作流程)很容易地進行設置。

創建一個新的流水線作業,勾選「此版本是參數」選項,創建所需的兩個字符串參數(如serverfoo),然後定義您的管道這樣的腳本:

// Pass the parameters used to start this pipeline into the first two jobs 
def p = [ 
    [$class: 'StringParameterValue', name: 'server', value: server], 
    [$class: 'StringParameterValue', name: 'foo', value: foo] 
] 

// Build the first job and wait for success 
build job: 'one', parameters: p 

// Build the second job and wait for success 
build job: 'two', parameters: p 

// Decide which job to build next, and then start it 
def deployJob = (server == 'develop') ? 'three' : 'four' 
build deployJob 

這將啓動前兩個具有相同參數的工作(我在本例中也稱爲serverfoo),然後顯然將開始構建另一個工作,具體取決於參數server的值是什麼時候開始管道。