Можно ли построить многоотраслевой конвейер с файлом jenkins из другого репо?
Краткий ответ:
Нет, это не так, поскольку каждое задание в многоотраслевом конвейере всегда ссылается на Jenkinsfile из одной и той же ветви (следовательно, из того же репо), для которого он настроен для мониторинга. А ветки, которые не содержат Jenkinsfile, не индексируются.
Расширенный ответ:
Чтобы добиться более или менее того, о чем вы просите, я бы сделал следующее:
- Создание репозитория с пользовательским
Jenkinsfiles
(для каждой ветви, для каждого клиента, для каждого env ... и т. Д.).
Каждый Jenkinsfile
будет описывать этапы, которые вы хотите выполнить в каждом конкретном случае. Использовать Синтаксис скриптового конвейера .
- Добавьте еще один
Jenkinfile
к вашему репо продукта, где вы: извлекаете выделенное репо с вашими пользовательскими конвейерами, загружаете конвейер и выполняете его.
- Настройка многоотраслевого конвейера для репо продукта.
* * Пример тысячи двадцать-шести * ** 1 028 +1029 *
git@github.com: ваш-орг / заказ pipelines.git / Jenkinsfile-DEV
// Jenkinsfile-dev
def stages() {
stage ("Checkout") {
checkout scm
}
stage ("Build") {
}
stage ("Test") {
}
}
return this
git@github.com: ваш-орг / продукт-repo.git / Jenkinsfile
// Jenkinsfile
node ("ubuntu") {
// Checkout custom Jenkinsfiles
stage ("Checkout pipelines") {
git url: "git@github.com:your-org/custom-pipelines.git",
branch: "master",
credentialsId: "github-ssh"
}
load ("Jenkinsfile-${env.BRANCH_NAME}").stages()
}