Многоразветвленный Jenkins с файлом Jenkins в другом репозитории

#jenkins #jenkins-pipeline #jenkins-plugins

#jenkins #jenkins-конвейер #jenkins-плагины

Вопрос:

Если использовать многоразветвленный конвейер в Jenkins, я хочу иметь сборку для каждой конкретной ветви, которая создается внутри моего репозитория кода. Это работает как шарм. Но я не хочу предоставлять файл Jenkins внутри моего репозитория кода. Вместо этого я хочу определить другое репозиторий CI, который предоставляет мои скрипты конвейера CI.

Проблема в том, что обычная конфигурация не содержит опции scm, как в обычной конфигурации.

Обычная конфигурация конвейера:

введите описание изображения здесь

Конфигурация многоотраслевого конвейера:

введите описание изображения здесь

Может кто-нибудь сказать мне, как отделить Jenkinsfile от моего исходного кода, используя многоотраслевой конвейер?

Комментарии:

1. Почему вы хотите отделить свой файл Jenkins от своего репозитория? Идея многоразветвленного конвейера заключается в том, что каждая ветвь имеет файл Jenkins, который выполняется, когда в ветке выполняется фиксация, поэтому, по сути, вы боретесь против идеи многоразветвленного конвейера.

2. Как сказал @justaprogrammer: идея в том, чтобы дать разработчикам представление о том, как создается их программное обеспечение, и показать его мощь. Можете ли вы объяснить rason, почему вы этого не хотите?

3. Мы используем определение CI pipline не только для одного проекта. Если бы я поместил файл Jenkins в исходный репозиторий, я бы скопировал его. Во-вторых, я хочу использовать определение для коротких живых ветвей, таких как функциональные ветви, отличные от длинных живых ветвей, таких как develop или master. Таким образом, можно было бы поместить файл Jenkins в другой репозиторий. Почему это противоречит идее многоотраслевого конвейера?

Ответ №1:

На всякий случай, если кто-то столкнется с той же проблемой, есть подключаемый модуль Jenkins, который предоставляет удаленные файлы Jenkins для нескольких разветвленных файлов: https://plugins.jenkins.io/remote-file /