Добавление пользовательского свойства задания в задание Jenkins - PullRequest
0 голосов
/ 06 июня 2018

Я хочу добавить новое обязательное свойство задания для захвата некоторых настраиваемых полей в задании jenkins.Я искал в списке плагинов, но не смог найти соответствующий плагин, который решает проблему.Есть ли плагин для решения этой проблемы?(Примечание: плагин дополнительных столбцов не решает мою задачу)

1 Ответ

0 голосов
/ 06 июня 2018

Свободная работа может быть настроена на сборку с параметрами.См .: https://wiki.jenkins.io/display/JENKINS/Parameterized+Build

Вы можете настроить тип параметра (строка, логическое значение, раскрывающийся список и т. Д.), Дать описание параметра и значение по умолчанию.Строковые параметры могут включать в себя правила проверки: https://wiki.jenkins.io/display/JENKINS/Validating+String+Parameter+Plugin

Хотя это предупреждает только тогда, когда текущее значение параметра не соответствует правилу проверки регулярных выражений, оно не препятствует отправке сборки.Однако, если отправлено в этом состоянии, сборка завершится неудачей.

В быстром Google, кажется, это не работает для конвейерных заданий. См. Последний комментарий на URL страницы плагина выше от MiguelángelFernández :

Если вы посмотрите на реализацию класса ValidatingStringParameterValue, вы увидите, что он переопределяет реализацию общедоступного BuildWrapper createBuildWrapper (AbstractBuild build) способом, который прерывается, если строка недопустима,Это будет работать только на работах по фристайлу и на других типах работ, расширяющих AbstractBuild.Я боюсь, что это не относится к трубопроводным работам.Возможно, в вашем предыдущем проекте вы использовали вольные работы.

Альтернативой для работы вольным стилем является проверка работоспособности перед началом каких-либо шагов сборки с использованием «Подготовка среды для выполнения» из:
https://wiki.jenkins.io/display/JENKINS/EnvInject+Plugin

Вам нужно написать groovy, чтобы проверить отправленные параметры и прервать сборку на этом этапе, если значения не подходят.Что-то вроде:

def validateString = binding.variables.get('testParam')

if (!binding.variables.get('testParam').matches('\\d+')) {
   println "failure of parameter validation - does not match regex"
   throw new InterruptedException()
} else {
   println "Validation passed carry on with build"
}

Это не работает при сборке конвейера - так как плагин цитируется:
'Этот плагин имеет некоторые известные ограничения.Например, Pipeline Plugin поддерживается не полностью. '.

Но если вы используете скриптовые конвейеры, вы можете реализовать нечто подобное:

stage 'start up'
if(!env.testParam.matches('\\d+')) {
    error 'failure of parameter validation - does not match regex'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...