Используйте специальный агент для всего конвейера при выполнении условия

Есть декларативный конвейер. В начале блока конвейера выбор агента производится с помощью директивы agent. Идет отбор по этикеткам. Выбранный таким образом агент является стандартным агентом / агентом по умолчанию.

Как настроить для всего конвейера специального агента при выполнении определенного условия?

План состоит в том, чтобы выполнить проверку состояния на основе одного параметра конвейера >> может ли это сработать?

На какие вопросы следует обратить внимание при выбранном подходе?

Текущий план решения:

  • Groovy-код до блока конвейера

  • Упомянутый Groovy-код устанавливает переменную на основе значения параметра конвейера как получить доступ к параметру конвейера из кода Groovy, расположенного вне конвейера?

  • agent раздел использует переменную, установленную в Groovy code соответствие метки, к которой прикреплен специальный агент


person Na13-c    schedule 18.03.2019    source источник


Ответы (1)


И Jenkins.io, и Cloudbees не поддерживают динамический выбор агента с синтаксисом декларативного конвейера. Следовательно, добавление выражения «когда» в блоке агента не сработает. Однако можно попробовать следующий подход: 1. Создайте библиотеку конвейера - с помощью файла groovy в папке vars. Сохраните все этапы внутри этого файла и параметризуйте блок «Агент» 2. Jenkinsfile - вставьте библиотеку в Jenkinsfile и вызовите указанный выше файл groovy, используя синтаксис call (body). Передайте агенту решающий параметр из этого Jenkinsfile.

Информацию о синтаксисе библиотеки см. По этому URL-адресу синтаксис общей библиотеки

person Girish    schedule 18.03.2019