我使用詹金斯測試/建造的目的,所以我創建了這個配置的多椎項目:詹金斯:在多椎
- 測試工作
- 構建工作
- 安裝工作
MultiJob從Master Jenkins啓動,但其他作業從其他節點啓動。 構建作業執行一個創建BUILD_ID的shell腳本。 現在,我想將BUILD_ID作爲參數傳遞給安裝作業。 我該怎麼做?我唯一的選擇是使用屬性文件?
非常感謝
我使用詹金斯測試/建造的目的,所以我創建了這個配置的多椎項目:詹金斯:在多椎
MultiJob從Master Jenkins啓動,但其他作業從其他節點啓動。 構建作業執行一個創建BUILD_ID的shell腳本。 現在,我想將BUILD_ID作爲參數傳遞給安裝作業。 我該怎麼做?我唯一的選擇是使用屬性文件?
非常感謝
要使用我要描述的建議,您將需要Parameterized Trigger插件。將自定義參數傳遞到下游作業的一種方法是將密鑰對(key=value
)存儲在文件中,並在調用下游(本例中爲作業B)作業時通過選擇Parameters from properties file
選項指定相同的文件。請參閱下面的截圖:
現在,您可以通過使用$BUILD_ID
訪問下游的工作「B」的變量。您還想啓用選項Don't trigger if any files are missing
。
首先,你需要添加到「安裝工作」被稱爲「BUILD_ID」,然後一旦你的構建工作完成後,你可以在「觸發參數化的基礎上對其他項目」,並添加一個字符串參數未來建設作爲BUILDID =%BuildID%
有關在詹金斯paramterized工作的詳細信息請閱讀以下鏈接的參數: https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build
,你可能需要安裝一個插件爲。上面的鏈接。
您可以在多作業階段通過使用預定義參數選項來傳遞參數BUILD_ID
。
步驟如下:
BUILD_ID
;問題問如何在作業之間爲MultiJob項目傳遞值,而不是參數化觸發器。參數化觸發器可能不是一個好的解決方案,因爲下游作業將在MultiJob父級範圍之外執行。傳遞變量多椎子作業之間,
我看到這是被接受的答案,它真的回答了這個問題嗎?我和@Ligio具有完全相同的情況,它是一個** MultiJob **,需要將參數從_build_傳遞到_deploy_作業。值來自_build_作業,但_deploy_作業**不是_build_作業的下游**作業。它們按順序運行,但是作爲父代** MultiJob **的階段。而且,它們運行在不同的奴隸機器上。我看不出這個解決方案如何工作。任何提示將不勝感激。 [看起來像。](https://s21.postimg.org/x82wux0qv/multijob.png) – topr 2016-08-26 10:42:39
@topr我也有同樣的問題。任何進展或解決方法? – polavishnu 2016-11-25 08:03:33
@polavishnu是的,每個階段的作業都有多個作業級別添加的env變量。對於問題中的情況,只需將BUILD_JOB_BUILD_ID(或BUILD_JOB_BUILD_NUMBER,不記得確切)環境變量的值傳遞給安裝作業就足夠了。 – topr 2016-12-06 18:36:35