Я согласен с ответом @metalisticpain, использование общих библиотек является ключом к DRY (не повторяйте себя).
Я не согласен с тем, нужен ли вам файл Jenkins в репо, когда вы надеваете не хочу Вы можете определить Jenkinsfile в другом репо, который вы строите. Для конвейерных проектов в разделе «Конвейер» конфигурации проекта вы можете указать SCM, отличный от того, который связан с проектом.
Для многоотраслевых проектов хранение Jenkinsfile вне репо является более сложным. Я бы предложил вам использовать стандартный проект Pipeline и включить logi c, который отличает сборку branchA от сборки branchB внутри вашего кода / разделяемых библиотек.
Я использую репозиторий для хранения своих общие библиотеки, и все Jenkinsfile для более 100 проектов, и это работает очень хорошо. К сожалению, я не смог найти какой-либо конвейер, который бы помог мне с этой разработкой, и мне пришлось писать все с нуля.