Вызов одной параметризованной работы (или «шаблона») из многих других работ - это выполнимый подход? - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть такие вакансии:

  • template__build_docker
  • build_dockerA
  • build_dockerB ...
  • build_dockerX

template__build_docker - это параметризованное задание, например:

node {
   [string(name: 'docker_name', trim: true)]

   ... build the container - git clone, etc ...
}

каждый из build_dockerA, build_dockerB ... сделайте следующее:

stage('call build template'){
   build job: 'template__build_docker ',  parameters: [string(name: 'docker_name', value: 'MyDockerImageA')]                                  
}

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

ВОПРОС: Это выполнимый подход или есть какие-то проблемы с этим, которые сделали бы это неподходящим способом для повторного использования / рефакторинга конвейера?

Я знаю уже одну проблему - если я быстрозапустить несколько заданий build_dockerX, больше настроенного «# исполнителей», затем я зашел в тупик - задания не могут запустить задание шаблона, так как нет доступного исполнителя.

или есть другие подобные ошибки?

1 Ответ

0 голосов
/ 13 декабря 2018

Краткий ответ - ДА, но вы должны использовать разделяемые библиотеки .Посмотрите на простой пример, написанный здесь , или , где есть весь декларативный конвейер, определенный и используемый из файла jenkinsfile.Я вспомнил также вопрос , который я разместил здесь на SO, который также может служить примером.

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

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