Jenkins Workflow Multibranch позволяет указать путь к файлу Jenkinsfile
похоже, что теперь вы можете иметь только один Jenkinsfile в одном месте в вашем проекте при использовании типа ветвящиеся.
есть ли способ настроить, чтобы я мог разместить файл Jenkinsfile где-то еще, чем в корне проекта под именем Jenkinsfile. Есть надежда, поскольку есть опция фиксированной конфигурации, возможно, это функция для будущего, но я был бы очень признателен за этот вариант, так как в текущей ситуации у меня нет возможности запускать все как один красиво скомпилированный трубопровод из-за размера РЕПО. Я думаю о нескольких заданиях Дженкинса против одного и того же репозитория.
-- Маркус
2 ответов
начиная с Pipeline: Multibranch plugin версии 2.15, вы можете указать местоположение Jenkinsfile в своей конфигурации.
см. мой ответ в https://stackoverflow.com/a/45172149/2141666 и плагин changelog в https://wiki.jenkins.io/display/JENKINS/Pipeline + Multibranch + плагин. Из журнала изменений:
2.15 (01 июня 2017,)
опция JENKINS-34561 для выбора имени/пути скрипта, отличного от Дженкинсфайл.
Я думаю, что столкнулся с подобной проблемой.
то, что вы можете сделать, это иметь другой файл "конвейера", хранящийся где-то еще. Это может быть в том же месте проверки или другой проверки все вместе.
в этом файле вы можете определить методы, и вам нужно закрыть "return this", чтобы запускаемый файл Jenkinsfile мог использовать второй скрипт. Пример:
def initialize(){
wrap([$class: 'BuildUser']) {
env.buildUserName = "$env.BUILD_USER"
env.buildUserId = "$env.BUILD_USER_ID"
env.buildUserEmail = "$env.BUILD_USER_EMAIL"
}
}
// Has to exist with 'return this;' in order to be used as library
return this;
в файле Jenkinsfile вы можете сделать следующий:
def steps
node {
steps = load 'MyJenkinsPipelineScript.groovy'
steps.initialize()
}
на основе любых переменных среды вы можете загружать разные файлы. Надеюсь, это поможет.