2014-04-14 49 views
2

我定義我的詹金斯的工作過程是這樣:我可以從參數化的Jenkins構建作業中獲取參數嗎?

"Integration tests" Job >> "Deploy" Job 

每當「集成測試」任務被觸發就會觸發一個參數「部署」工作。 比方說,我傳遞參數如:USER_ID來唯一標識我的應用程序。

現在「部署」作業使用此USER_ID參數創建和部署應用程序。 一個典型的應用URL被創建,如:

http://myApplication-userA (assume USER_ID has 'userA' value) 

我要的是這個URL值回我的「集成測試」的工作。我使用參數化插件將值傳遞給進一步的工作,但是有沒有辦法通過「部署」作業獲取值?

雖然,我知道創建獨特應用程序的邏輯是在「部署」作業內,並且可以很好地預測URL。但更清潔的解決方案是獲得價值?

回答

0

我還沒有見過類似的東西,短暫的臨時文件存儲在一個互相訪問的位置這兩個工作。

你可以做的是讀取Deploy作業的控制檯輸出,並解析它,以找出你正在尋找的任何輸出。顯然,Deploy工作將不得不打印來控制您正在查找的信息。

您可以閱讀Deploy作業的控制檯輸出與http://[HUDSON]/job/[Deploy_JOB_NAME]/lastBuild/logText/progressiveText?start=0

加入/api來,我還沒有嘗試過任何作業的URL

+0

我會盡量控制檯輸出解析,也看/ API。感謝您的投入。 – Nilesh

0

一種方法結束瞭解更多關於它添加新的環境變量[1]。關於它的好處是,環境變量的全局共享狀態似乎被認爲是必須的,並且是無處不在的。

你是怎麼解決它的?安妮

1] https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin

+0

我最終在共享位置使用臨時文件:集成作業創建一個具有唯一名稱的臨時文件。它可以將該文件名或唯一性發送到下一個作業(此處部署作業)。部署作業完成後,使用狀態更新文件。 – Nilesh

相關問題