Должен ли Jenkins Pipeline jenkinsFile быть частью репозитория?

Мы изучаем проекты типа Jenkins Pipeline и задаемся вопросом, должен ли Jenkinsfile быть частью репозитория?

У нас есть 20 java-проектов с Jenkinsfile, которые на 99% одинаковы. Кроме репозитория git, все остальное в Jenkinsfile такое же.

Просто странно, что вам нужно клонировать весь репозиторий, чтобы получить файл Jenkinsfile. А потом сам Jenkinsfile снова клонирует репозиторий для сборки проекта.

Есть ли какая-то документация по этому поводу или лучшие практики?


person Lieven Cardoen    schedule 22.11.2016    source источник
comment
1. Разделите сценарий сборки проекта на две части. Глобальная часть будет вне git и будет использоваться всеми/многими заданиями/ветками/проектами, что угодно. Локальная часть должна оставаться в git. Глобальный конфиг в какой-то момент загружает локальный из git и дает ему управление.   -  person Gena Batsyan    schedule 04.05.2017
comment
2. Не используйте многоветвевой конвейер. Всегда. Используйте Job-DSL-Plugin + конвейер.   -  person Gena Batsyan    schedule 04.05.2017
comment
Ни один комментарий не отвечает на вопрос. Должен ли он быть добавлен в репозиторий? Я понятия не имею ни из одного из этих комментариев. (Я тоже новичок в Дженкинсе.)   -  person MiguelMunoz    schedule 03.11.2017
comment
Кроме того, комментарий Не используйте многоветвевой конвейер. Ever может быть очень хорошим советом, но он бесполезен, если вы не объясните, почему. Я хотел бы услышать, каковы преимущества Job-DSL-Plugin или каковы недостатки мультифилиала.   -  person MiguelMunoz    schedule 04.11.2017


Ответы (2)


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

Я не думаю, что вы можете сделать это в многоветвевом конвейере. Описание пути сценария гласит:

Относительное расположение в кассе вашего скрипта Pipeline. Обратите внимание, что он всегда будет выполняться в песочнице Groovy. По умолчанию используется Jenkinsfile, если оставить пустым. (просто используйте checkout scm для извлечения источников из того же места, которое настроено здесь)

Поскольку этот вопрос был опубликован, в jenkins были внесены некоторые изменения, так что он клонирует репо только в том случае, если вы являетесь человеком, которому разрешено вносить изменения в сценарий Jenkins (вы можете настроить свой jenkins относительно того, как он это определяет). Это отлично подходит для людей, которым не разрешено вносить изменения в файл jenkins, поскольку они пропускают начальное клонирование и проверку. Конечно, если вам разрешено вносить изменения, это мало поможет. И есть потенциальная проблема в том, что кто-то может внести изменения в скрипт Jenkins, но измененный скрипт не запустится, пока он не будет объединен с основной веткой, и если есть какие-либо ошибки, уже слишком поздно...

person Tom Tanner    schedule 14.01.2019

Существует два способа использования Jenkinfile:

  1. используя заводной скрипт
  2. используя отличный скрипт с SCM

Вы также можете использовать плагин Jenkins Job-builder для автоматизации заданий, конвейерных проектов и т. д. Jenkins Job Builder В этом случае вам нужно просто изменить репозиторий, а остальная конфигурация останется прежней.

10 лучших рекомендаций для подключаемого модуля Jenkins Pipeline

person lakshmi kumar    schedule 09.05.2017
comment
Это не отвечает на вопрос заголовка. Должен ли он быть добавлен в репозиторий? Ответ должен быть либо да, либо нет. Все остальное, что вы сказали, прекрасно, но вы можете сказать все это и все же ответить на вопрос. (Ссылка Top 10 Best Practices очень полезна и отвечает на вопрос в обсуждении, но даже это не отвечает на вопрос заголовка.) - person MiguelMunoz; 04.11.2017