Централизованный Jenkinsfile вне SCM проекта? - PullRequest
0 голосов
/ 24 февраля 2020

Я экспериментирую с Pipeline в надежде перейти к этому из традиционных вольных проектов. Мне не нравится определять этапы сборки Jenkinsfile и хранить их в SCM, потому что нам нравится стандартизировать наш процесс сборки на многих микросервисах, а когда мы хотим вносить изменения, я не хочу касаться Jenkinsfile в десятках репозиториев. Я вижу, что могу определить проект Pipeline, который позволит мне определить Jenkinsfile, но я не вижу способа использовать этот файл Jenkins в многоотраслевом проекте. Я также отмечаю, что каждый репо или ветвь просто пропускается прямо сейчас, поскольку b / c в SCM нет Jenkinsfile.

Есть ли какой-либо способ для меня поддерживать этот Jenkinsfile централизованно и все же использовать его в этих типах многоотраслевых проектов?

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Я согласен с ответом @metalisticpain, использование общих библиотек является ключом к DRY (не повторяйте себя).

Я не согласен с тем, нужен ли вам файл Jenkins в репо, когда вы надеваете не хочу Вы можете определить Jenkinsfile в другом репо, который вы строите. Для конвейерных проектов в разделе «Конвейер» конфигурации проекта вы можете указать SCM, отличный от того, который связан с проектом.

Для многоотраслевых проектов хранение Jenkinsfile вне репо является более сложным. Я бы предложил вам использовать стандартный проект Pipeline и включить logi c, который отличает сборку branchA от сборки branchB внутри вашего кода / разделяемых библиотек.

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

1 голос
/ 24 февраля 2020

Вы можете использовать совместно используемые библиотеки jenkins -> https://jenkins.io/doc/book/pipeline/shared-libraries/

Каждому репо все еще потребуется файл Jenkins, чтобы запустить задание для своего репо / филиала. Однако, если вы тоже будете sh, вы можете централизовать все конвейеры (и параметры et c).

Сколько контента останется в jenkinsfile по сравнению с общими библиотеками, будет зависеть от вас и что работает для ваших команд.

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