Jenkins Workflow Multibranch позволяет указывать путь Jenkinsfile

Кажется, что теперь вы можете иметь только один Jenkinsfile в одном месте в вашем проекте при использовании типа Multibranch.

Есть ли способ настроить так, чтобы я мог разместить Jenkinsfile где-нибудь еще, кроме корневого каталога проекта под именем Jenkinsfile. Есть надежда, так как есть опция Fixed Configuration, возможно, это функция на будущее, но я бы очень признательна за эту возможность, так как в текущей ситуации у меня нет возможности запускать все как один красиво скомпилированный конвейер из-за размер репо. Я думаю о том, чтобы иметь несколько рабочих мест в Jenkins для одного и того же хранилища.

- Маркус

2 ответа

Решение

Начиная с версии Pipeline: Multibranch plugin 2.15, вы можете указать расположение Jenkinsfile в вашей конфигурации.

Смотрите мой ответ на /questions/67861/dzhenkins-kak-ukazat-jenkinsfile-v-mnogootraslevom-proekte/67870#67870 и журнал изменений плагинов на https://wiki.jenkins.io/display/JENKINS/Pipeline+Multibranch+Plugin. Из журнала изменений:

2,15 (01 июня 2017 г.)

JENKINS-34561 Возможность выбрать имя / путь сценария, отличный от Jenkinsfile.

Я думаю, что столкнулся с подобной проблемой.

То, что вы можете сделать, - это сохранить другой "конвейерный" файл в другом месте. Это может быть один и тот же пункт оформления заказа или другой пункт оформления заказа вместе.

В этом файле вы можете определить методы, и вам нужно завершить с помощью команды "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()
}

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

Другие вопросы по тегам