Как определить солт-переменную с двумя или более входами из параметра Jenkins? - PullRequest
0 голосов
/ 08 февраля 2019

Параметр Jenkins не печатается должным образом с использованием сценария конвейера.

Я определяю переменную в сценарии конвейера Jenkins как: USER = "xx-yy - $ {Target} -zzz" Здесь $ {Target} из параметров, разделенных запятыми Jenkins (server1, server2).

properties([
parameters([
    string(defaultValue: '', description: 'Comma-separated list', name: 'Target')
    ])
])
USER = "xx-yy-${Target}-zzz"
node('master') {
stage('pass_the_salt'){

}

Когда я печатаю ПОЛЬЗОВАТЕЛЬ, результат ошибочно печатается как xx-yy-server1, server2-zzz.Ожидаемый результат: xx-yy-server1-zzz, xx-yy-server2-zzz.

1 Ответ

0 голосов
/ 08 февраля 2019

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

user_input = "server1,server2"  # equivalent to your Target input parameter
def list = []
def arr = user_input.split(",") # splitting the input with , as delimiter
for( String srv: arr ) {
  list << "xx-yy-${srv}-zz"     # creating a new list with your expected prepend/append string
}

print list.join(",") # Joining the output list with , as delimiter

# result looks as below
xx-yy-server1-zz,xx-yy-server2-zz
...