2014-01-15 55 views

回答

0

您可以使用Multijob plugin

對於您的示例,一個簡單的實現將是有一個第三個(multijob)項目,然後有兩個multijob階段與每個項目在一個。您可以通過配置頁面上的「高級」按鈕指定的每個階段和使用參數退出代碼的行爲


編輯 的多椎插件不支持文件的參數(如通過在一個文件中瀏覽器),這是一種恥辱

但是您可以僞造它通過

項目A(__upstream)

其中params.txt是文件參數

upstream job

PROJECT B(__downstream)

其中params.txt是文件參數

downstream job

結果從A

Started by upstream project "__upstream" build number 8 
originally caused by: 
Started by user anonymous 
[EnvInject] - Loading node environment variables. 
Building on master in workspace /var/lib/jenkins/workspace/__downstream 
[__downstream] $ /bin/sh -xe /tmp/hudson4094819031189787422.sh 
+ touch params.txt 
[EnvInject] - Injecting environment variables from a build step. 
[EnvInject] - Injecting as environment variables the properties file path 'params.txt' 
[EnvInject] - Variables injected successfully. 
[__downstream] $ /bin/sh -xe /tmp/hudson1756581135746292166.sh 
+ cat params.txt 
+ env 
+ grep TEST 
+ sort 
TEST1=abc 
TEST3=xyz 
+ rm params.txt 
Finished: SUCCESS 
觸發時個

結果直接觸發

Started by user anonymous 
[EnvInject] - Loading node environment variables. 
Building on master in workspace /var/lib/jenkins/workspace/__downstream 
Copying file to params.txt 
[__downstream] $ /bin/sh -xe /tmp/hudson5504289990867483427.sh 
+ touch params.txt 
[EnvInject] - Injecting environment variables from a build step. 
[EnvInject] - Injecting as environment variables the properties file path 'params.txt' 
[EnvInject] - Variables injected successfully. 
[__downstream] $ /bin/sh -xe /tmp/hudson8534892071758952425.sh 
+ cat params.txt 
TEST1=abc 
TEST3=xyz 

+ env 
+ sort 
+ grep TEST 
TEST1=abc 
TEST3=xyz 
+ rm params.txt 
Finished: SUCCESS 

時,您必須觸摸文件中的下游,否則EnvInject插件扼流圈上沒有文件,並記得刪除的文件(或重命名),這樣下次運行不會重用值

+0

它似乎並沒有爲FILE PARAMETER專門添加額外的功能,但是,請您提供建議嗎? – ksdnlee

+0

你是正確的文件參數,但我更新了我的答案與工作 – KeepCalmAndCarryOn

+0

是不是步驟觸摸params.txt和項目B冗餘注入環境變量?參數化觸發器插件中的'使用屬性文件'已經爲您做好了準備。 – harish