Как использовать переменную Groovy в расширенном плагине Jenkins? - PullRequest
1 голос
/ 19 мая 2019

Я бы хотел использовать переменную Groovy в качестве значения для плагина Extended Choice.Кажется тривиальным, но не работает - завершается с "groovy.lang.MissingPropertyException: нет такого свойства: $ COMPONENTS_LIST для класса: groovy.lang.Binding".

Есть идеи?

environment {
    COMPONENTS_LIST= "one two three"
}
parameters {
    extendedChoice (description: 'Components', multiSelectDelimiter: ' ', 
    name: 'Components_To_Deploy', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_MULTI_SELECT', 
    value: $COMPONENTS_LIST, visibleItemCount: 3)
}

Ответы [ 2 ]

3 голосов
/ 19 мая 2019

Это синтаксическая ошибка, вы пытаетесь установить для именованного параметра value значение переменной $COMPONENTS_LIST;который не существуетТакже есть проблема с областью действия переменной;который должен быть доступен в обоих закрытиях.Поэтому попробуйте определить переменную вне области обоих замыканий с нужным вам значением, а затем используйте переменные внутри замыканий, как в следующем примере:

def componentsList = "one two three"
environment {
    COMPONENTS_LIST = componentsList
}
parameters {
    extendedChoice (description: 'Components', multiSelectDelimiter: ' ', 
    name: 'Components_To_Deploy', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_MULTI_SELECT', 
    value: componentsList, visibleItemCount: 3)
}
0 голосов
/ 21 мая 2019

Я думаю, что это проблема синтаксиса. Вы должны использовать двойные кавычки для ссылки на переменную:

def COMPONENTS_LIST= "one two three"
parameters {
    extendedChoice (description: 'Components', multiSelectDelimiter: ' ', 
    name: 'Components_To_Deploy', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_MULTI_SELECT', 
    value: "${COMPONENTS_LIST}", visibleItemCount: 3)
}
...