2016-04-18 300 views
1

使用鍵值對這是我的要求,在詹金斯參數:在詹金斯

1. User selects 3 Values from Dropdown: DEV, QA, PROD 
2. Upon selection I need to return single value as parameter as like this: 
If DEV selected, return "Development http://dev.com 1" 
If QA selected, return "QA http://qa.com 2" 
If PROD selected, return "Production http://prod.com 3" 
3. Once the value is returned in a variable, I will use that variable value in next step of 'Windows batch command'. 

在哪裏以及如何定義鍵/值。我試圖使用擴展選擇參數插件,但不知道如何做到這一點。

回答

0

您可以在groovy腳本中進行映射。如果你有一個名爲InputParam參數,可以將其映射到一個名爲OutParam在系統Groovy腳本像這樣新的參數:

import hudson.model.* 
def parameterMap=[:] 
parameterMap.put('DEV','Development http://dev.com 1') 
parameterMap.put('QA','QA http://qa.com 2') 
parameterMap.put('PROD','Production http://prod.com 3') 

def buildMap = build.getBuildVariables() 
def inputValue=buildMap['InputParam'] 
buildMap['OutParam']=parameterMap[inputValue] 

setBuildParameters(buildMap) 

def setBuildParameters(map) { 
    def npl = new ArrayList<StringParameterValue>() 
    for (e in map) { 
     npl.add(new StringParameterValue(e.key.toString(), e.value.toString())) 
    } 
    def newPa = null 
    def oldPa = build.getAction(ParametersAction.class) 
    if (oldPa != null) { 
     build.actions.remove(oldPa) 
     newPa = oldPa.createUpdated(npl) 
    } else { 
     newPa = new ParametersAction(npl) 
    } 
    build.actions.add(newPa) 
} 

選擇執行系統Groovy腳本作爲第一內建動作。然後你可以在windows shell中訪問輸出參數作爲一個環境變量,例如。 ECHO %OUTPARAM%

2

這可以使用Active選擇插件來實現,找到鏈接和圖像下面,供大家參考

插件參考:https://wiki.jenkins-ci.org/display/JENKINS/Active+Choices+Plugin

enter image description here

另一種方法,無需任何插件

使用shell腳本可以實現

將構建步驟添加爲shell腳本並添加將返回值的下面的腳本。比方說下拉paramater名稱爲「ENV」

if [ $env == "DEV" ] 
then 
    url = "Development http://dev.com 1" 
elif [ $env == "QA" ] 
then 
    url = "QA http://qa.com 2" 
elif [ $env == "PROD" ] 
then 
    url = "Production http://prod.com 3" 
fi 

$ url變量中會具有預期值,可以在你的未來建設中使用步驟

Shell腳本參考:http://www.tutorialspoint.com/unix/if-elif-statement.htm