2017-01-20 197 views
2

目前我有一個管道作業,它具有不同的參數,其中一個參數是Choice參數。這裏是工作參數的config.xml文件輸出:Jenkins選擇參數傳遞給管道作業

<hudson.model.ChoiceParameterDefinition> 
    <choices class="java.util.Arrays$ArrayList"> 
     <a class="string-array"> 
      <string>f1</string> 
      <string>f2</string> 
      <string>f3</string> 
      <string>f4</string> 
     </a> 
    </choices> 
    <name>WHERE</name> 
    <description>Something</description> 
</hudson.model.ChoiceParameterDefinition> 

現在我可以通過傳遞一個字符串參數調用通過從管道這份工作:

build job: "NameOfTheJob"", parameters: 
    [ 
    [$class: 'StringParameterValue', name: 'BRANCH', value: "${BRANCH}"], 
    ] 

但我不能得到的方式定義的參數,請選擇參數:

我曾嘗試以下:

build job: "NameOfTheJob"", parameters: 
    [ 
    [$class: 'StringParameterValue', name: 'BRANCH', value: "${BRANCH}"], 
    [$class: 'ChoiceParameterValue', name: 'WHERE', value: 'F3'], 
    ] 

但這個失敗,出現以下錯誤:

java.lang.UnsupportedOperationException: no known implementation of class hudson.model.ParameterValue is named ChoiceParameterValue 

所以現在的問題是:如何在調用的其他管道的工作定義選擇參數:

build job: "NameOfTheJob"", parameters: 
    [ 
    [$class: 'StringParameterValue', name: 'BRANCH', value: "${BRANCH}"], 
    [$class: '??????', ????], 
    ] 

是否有人有這樣的事情的例子嗎?

+1

我已經看到,使用下面的語法的工作示例: '''建設工作: 'NameOfTheJob',參數:[ 字符串(名稱: '動作',值: 「測試」), 字符串(名稱: 'AnotherOption',value:「test12」) ] ''' – c3st7n

+0

請添加您的評論作爲答案,以便我可以接受它...謝謝。 – khmarbaise

回答

5

我已經看到,使用下面的語法的工作示例:

build job:'NameOfTheJob', parameters: [ 
     string(name: 'FirstOption', value: "test"), 
     string(name: 'AnotherOption', value: "test12") 
] 

基本上不把以特殊方式的選擇參數,只是把他們當作普通字符串參數。

1

基於c3st7n的提示,我已經測試了以下內容:

build job: "NameOfTheJob"", parameters: 
    [ 
    [$class: 'StringParameterValue', name: 'BRANCH', value: "${BRANCH}"], 
    [$class: 'StringParameterValue', name: 'WHERE', value: "F3"], 

    ] 

這工作。

7

在腳本模式下,你也可以像這樣做,它目前被竊聽,它期望選擇參數作爲換行符而不是數組。 當使用管道和JenkinsFile在腳本模式,你可以做一個快速的解決類似如下:

properties(
    [parameters([choice(choices: ["A", "B", "C"].join("\n"), 
    description: 'Some choice parameter', 
    name: 'SOME_CHOICE')])]) 

你可以把你的這第一個節點語句之前參數添加到您的構建。

+0

它是否適用於多選,我覺得它只適用於單選。 – Aditya

相關問題