2017-01-20 11 views
2

В настоящее время у меня есть работа с конвейером, которая имеет разные параметры, где одним из этих параметров является параметр Choice. Вот выход config.xml этого параметра работы:Параметр Jenkins Choice Переход к конвейеру Работа

<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