2017-01-10 18 views
0

我有一個Jenkins版本,其中包含一個用於按發佈版本構建前綴的選擇框。它有助於根據人們想要的任何具體構建的價值來引發工作。根據來自同一作業的參數在Jenkins中生成一個動態參數

我想取這個選擇框的值,並根據通常在此服務器上使用的命名約定將變量轉換爲正確的前綴,以基於名稱觸發作業。

所以我們可以說我有構建前綴選擇專門爲, ReleaseOne ReleaseTwo none

對於none,這意味着通過觸發使用不會嘗試訪問或設定任何特定的基於釋放的信息參數非版本指定的版本。

我想取Release_Prefix的值,並在需要時將其轉換爲稍後觸發的作業。我希望用動態參數或類似機制來實現這一點。我不確定我的腳本是否被竊聽,或者某些根本不符合我的意圖。這可能是這樣的,根據類似問題的一些暗示反饋。

我可以做類似下面的代碼片段嗎?如果不使用動態參數插件+ GroovyScript,您會提出什麼建議?無論我選擇什麼,這目前似乎都沒有任何回報。

Formatted_Prefix參數,動態參數

switch(binding.getVariables().get("Release_Prefix")) 
{ 
    case "none": 
     return ""; 
    case "ReleaseOne": 
     return "ReleaseOne_"; 
    case "ReleaseTwo": 
     return "ReleaseTwo_"; 
    default: 
     def prefix = binding.getVariables().get("Release_Prefix") 
     return "$prefix_"; 
} 

有多種方式,我可以解決這個問題,但如果我能在初始階段參數做到這一點,那將是最適合我。

回答

1

您可以使用EnvInject Plugin
選中該複選框準備的環境中運行和 寫裏面腳本評估Groovy腳本文本框中

高清prefix1 = Release_Prefix + 「MYDATA」
回報[前綴:prefix1]

+0

謝謝!只是給任何閱讀這個答案的人提供了一個參考 - 這不會創建一個新的_Jenkins_變量,例如一個會顯示在環境變量中的變量,但這確實有效。我使用這個屏幕截圖中的邏輯來幫助觸發基於此服務器使用的已知命名約定的構建:http://i.imgur.com/Ibt0jT1.png - 引用在作業中的變量將是'$ {Formatted_Prefix} ',在bash中,'$ Formatted_Prefix',以cmd,'%Formatted_Prefix%' –