У меня большой опыт работы с обоими. Краткий ответ заключается в том, что Job DSL существует гораздо дольше и был решением Netflix с открытым исходным кодом для «кодирования» Дженкинса. Это позволило вам ввести логику и переменные в сценарии ваших заданий Jenkins, и обычно эти задания можно использовать для формирования своего рода «конвейера» для конкретного проекта. Этот плагин получил довольно много внимания как обычный способ включения шаблонов заданий и написания сценариев.
Jenkins Pipeline (2.0) - это новое воплощение задания Jenkins, которое полностью основано на DSL и пытается устранить необходимость сшивать несколько заданий для заполнения одного конвейера, который на сегодняшний день был наиболее распространенным использованием Job DSL. Первоначально, поскольку конвейерный DSL не предлагал многих функций, которые предоставлял Job DSL, и, как упоминалось выше, Job DSL позволял вам создавать конвейерные задания, их можно было использовать вместе для определения конвейера.
Сегодня у IMO мало причин для использования Job DSL, потому что Pipeline - это поддерживаемый Jenkins механизм для написания сценариев конвейеров Jenkins, и он соответствует или превосходит многие функции Job DSL. Новые плагины разрабатываются изначально для Pipeline, а те, которые этого не делают, разработчики Jenkins поощряют к интеграции с Pipeline. И у Pipeline есть несколько преимуществ:
- Нет необходимости «засеивать» задания с помощью конвейера, как в случае с Job DSL, поскольку конвейер является самим заданием. С Job DSL это просто сценарий, который создает другие задания.
- С конвейером у вас есть такие функции, как параметризованный шаг ручного ввода, позволяющий указать логику промежуточного потока внутри конвейера.
- Логика, которую можно включить в Job DSL, ограничивается созданием самих заданий; тогда как с конвейером вы можете включить логику непосредственно в задание.
- Job DSL просто намного сложнее создать базовый конвейер доставки, используя, например, подключаемый модуль Build Pipeline; при использовании конвейера ваш файл будет меньше, а синтаксис короче. И если вы используете Job DSL для создания заданий конвейера, я больше не вижу в этом особой ценности, учитывая готовые функции шаблонов, доступные в Jenkins Pipeline.
Наконец, Jenkins Pipeline - безусловно, самая распространенная функция Jenkins прямо сейчас. Ознакомьтесь с повесткой дня Jenkins World 2016, и вы увидите прибл. 50% сессий связаны с конвейером. Нет для Job DSL.
person
Neil
schedule
29.08.2016