Строительный проект с реактивным эталонным параметром Active Choice

Я новичок в jenkins и groovy, и я пытаюсь создать свою собственную конфигурацию, которая позволяет мне создавать свой проект с различными параметрами. Для этого я использую параметр реактивной ссылки Active Choices. В качестве типа выбора я установил «Форматированный HTML». Выглядит именно так, как я хочу, но, к сожалению, нет, я не могу вернуть параметры для сборки.

Это мой отличный сценарий:

if(useDefaultValues.equals("YES")) {
    return "defaultName"
 } else {
    inputBox = "<input name='name' class='setting-input' type='text'>"
    return inputBox
 }

Так выглядит моя конфигурация

Сборка с параметрами по умолчанию

Сборка с другими параметрами

Кто-нибудь может мне помочь с этим, пожалуйста?


person jb27    schedule 13.08.2018    source источник
comment
В jenkins wiki я нашел полезную информацию и переписал свой код. Теперь я возвращаю это: 'return ‹input name = \ name \ value = \ $ {defaultName} \ class = \ setting-input \ type = \ text \›' Но это все равно не работает ...   -  person jb27    schedule 13.08.2018


Ответы (2)


Обновите свой сценарий Groovy примерно так:

def defaultName = "default name"

if (useDefaultValues.equals("YES")) {
    return "<b>${defaultName}</b><input type=\"hidden\" name=\"value\" value=\"${defaultName}\" />"
 }

return "<input name=\"value\" class=\"setting-input\" type=\"text\">"

Важно, чтобы в вашем поле ввода использовалось имя value - оно не меняет имя вашего параметра, и если вы назвали его name, вы сможете получить к нему доступ как $name (например, если вы используете Groovy).

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

Однако есть одна странная проблема с входным параметром в формате HTML - он всегда добавляет , в конце значения параметра. Так, например, если я пропущу lorem ipsum, когда я прочитаю его с параметром $name, я получу lorem ipsum,. Похоже, он рассматривает это как несколько параметров или что-то в этом роде. Чтобы извлечь чистое значение из параметра, вы можете сделать что-то вроде (код Groovy):

name.split(',').first()
person Szymon Stepniak    schedule 13.08.2018

def defaultName = "default name"
if (useDefaultValues.equals("YES")) {
    return "<input type=\"text\" name=\"value\" value=\"${defaultName}\" />"
}
return "<input name=\"value\" type=\"text\">"

Установите флажок "Пропустить поле значения". Исправлена ​​проблема с запятыми. (проблема с запятыми)

person Seven    schedule 14.11.2018