Динамически оценивать значение по умолчанию в параметре сборки конвейера Jenkins - PullRequest
0 голосов
/ 26 марта 2020

В декларативном конвейере Jenkins мы можем определить параметры сборки, например

pipeline {
    …
    parameters {
        string(name: 'PARAMETER', defaultValue: 'INITIAL_DEFAULT')
        choice(name: 'CHOICE', choices: ['THIS', 'THAT'])
    }
    …
}

. Однако определения параметров задания обновляются только тогда, когда задание запускается после . Диалоговое окно параметров сборки уже отображалось. , То есть, когда я изменяю INITIAL_DEFAULT на что-то другое, следующая сборка по-прежнему будет иметь значение по умолчанию INITIAL_DEFAULT, и только одна последующая будет использовать новое значение.

Та же проблема с choices и там это еще более серьезно, потому что строковое значение по умолчанию может быть легко перезаписано при запуске сборки, но если нового параметра нет, его нельзя выбрать вообще.

Так что есть способ определить функции или выражения, которые будут выполняться перед диалоговым окном параметров для вычисления текущих значений (из файлов, переменных в глобальных настройках или любой другой подходящей внешней конфигурации)?

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

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

1 Ответ

1 голос
/ 26 марта 2020

Оказывается, параметр расширенного выбора работает с конвейером, и конфигурации могут быть сгенерированы генератором директив. Это выглядит примерно так:

extendedChoice(
    name: 'PARAMETER',
    type: 'PT_TEXTBOX',
    defaultPropertyFile: '/var/lib/jenkins/something.properties',
    defaultPropertyKey: 'parameter'
)

(в генераторе доступно гораздо больше опций)

Groovy скрипт для получения глобальных переменных среды можно получить из этого другого ответа .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...