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()
}

на основе любых переменных среды вы можете загружать разные файлы. Надеюсь, это поможет.