2015-05-18 4 views
1

Мы используем JJB (Jenkins Job Builder) для создания наших рабочих мест, но в последнее время я решил попробовать Jenkins DSL-плагин, поскольку он такой же или близкий, как JJB, согласно информации I нашел. Причиной попробовать другую технологию было то, что я не смог решить одну задачу с JJB. Это заставило меня погрузиться в технологию плагинов DSL, попытаться создать рабочие места и организовать все так, как мы с JJB, чтобы понять, лучше ли или плагин DSL-плагина, следует ли использовать его вместо JJB или, возможно, в качестве дополнительного.JJB и Jenkins DSL-плагин - преимущества и недостатки

Это не очень много информации в Интернете о преимуществах и недостатках между theese двух плагинов, так что я хотел бы попросить вас помочь мне понять:

  • каковы преимущества и недостатки между JJB Дженкинс DSL-плагин
  • Какие задачи могут быть достигнуты с одним, а не с другим?

От себя могу сказать следующие вещи: DSL плагин преимущества:

  1. DSL плагин позволяет нам использовать силу языка программирования (заводной), что позволяет создавать более эффективные конфигурации рабочих мест.
  2. DSL-плагин не зависит от разработки плагинов - при добавлении новых параметров и элементов вы можете легко добавить их с помощью синтаксиса узла.
  3. Вы можете легко получить переменные из других сценариев DSL, используя, например, импорт классов (вот почему я решил попробовать подключить DSL-плагин).

DSL плагина недостатки:

  1. Это более трудно создавать шаблоны с ним, вам нужно добавить дополнительный код, чтобы сделать его работу. Команда «using()» не позволяет передавать переменные.
  2. Синтаксис немного сложнее.
+0

Вы можете использовать код Groovy для создания шаблонов (или сборщиков/фабрик) для DSL-скриптов. Посмотрите пример [Пример DSL Gradle] (https://github.com/sheehan/job-dsl-gradle-example), более конкретно [GradleCiJobBuilder.groovy] (https://github.com/sheehan/job -dsl-Gradle-пример/блоб/ведущий/SRC/Главный/заводной/ком/dslexample/GradleCiJobBuilder.groovy). Еще одно преимущество заключается в том, что вы можете использовать стандартные тестовые платформы Groovy, такие как Spock, для проверки конфигурации, прежде чем вносить какие-либо изменения. См. Https://github.com/sheehan/job-dsl-gradle-example/blob/master/src/test/groovy/com/dslexample. – daspilker

+0

Спасибо, .text() метод действительно полезен, я буду использовать его в будущем, я думал, что я могу добавить только целые элементы, используя команду(). И основа тестирования тоже хорошая вещь. – Alexander

ответ

2

Я также являюсь поклонником JJB, но он отвечает на вопросы, которые мешают мне работать над этим.

И когда я заметил отказа от jobDSL (2014.6?), Это правильно оружие для решения этой задачи

Некоторые вопросы:

  1. Слабая поддержка сложной конфигурации: Кончено Дженкинс REST API , многие вещи не могут быть настроены через внешний REST API. JobDSL основан на groovy, который может использоваться для получения внутренних данных из экземпляра jenkins. С мощным блоком configure он может манипулировать config.xml, если нормальный DSL не работает.

  2. Слабое сообщество: JobDSL предоставляется разработчиками ядра jenkins, и это было быстро поддержано всеми пользователями. И все больше и больше плагинов поддерживается напрямую по конфигурации.

  3. Исполнение модели: JJB запускается через Jenkins API, в то время как jobDSL запускается внутри jenkins-заданий, что легко контролировать.

Поэтому я рекомендую использовать JobDSL.

Если ваша работа не так сложна, что JJB уже поддерживает, и поклонники python, вы можете остаться с ней наверняка.

+0

Благодарим за информацию! – Alexander

+1

принять его, если вы считаете, что он отвечает на ваш вопрос thx. Прекрасно держать его открытым для лучшего ответа. дополнительные слайды http://www.slideshare.net/larrycai/learn-jobdsl-for-jenkins –