5

Кажется, теперь у вас может быть только один файл Jenkins в одном месте в вашем проекте при использовании Multibranch type.Jenkins Workflow Multibranch позволяет указать путь Jenkinsfile

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

- Маркус

ответ

5

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

См. Мой ответ на https://stackoverflow.com/a/45172149/2141666 и в журнал изменений плагина https://wiki.jenkins.io/display/JENKINS/Pipeline+Multibranch+Plugin. Из изменений:

2,15 (1 июня 2017)

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

1

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

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

В этом файле вы можете определить методы, и вам нужно закрыть «return this», чтобы начинающийся файл Jenkins мог использовать второй скрипт. Пример:

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

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