2016-08-18 1 views
1

Мы используем Jenkinsfile в репозиториях git, чтобы определить, как должен выполняться Jenkins CI.Выполнить код перед исполнением файла Jenkins

Возможно ли внедрить некоторый код, шаг или подобное до выполнения конвейера, определенного Jenkinsfile репозитория? Иногда нам нужно добавить несколько шагов до запуска наших конвейеров.

Пример того выполнения задания Maven: Файл Дженкинс содержит этапы клонирования, создания, тестирования, установки Таким образом, выполнив работу трубопровода приведет к созданию трубопровода с шагом:

cloneFromGit->buildMvn->testMvn->installMvn 

Однако нам нужно чтобы все артефакты сборки (банки и т. д.) вошли в наш репозиторий артефактов. Нам нужна возможность обновить/изменить файл Jenkins, чтобы добавить дополнительные шаги. Используя приведенный выше пример, мы должны иметь возможность иметь трубопровод выполнить следующие действия:

cloneFromGit->buildMvn->testMvn->installMvn->pushToArtifactRepository 

интрузивный/легкий способ добавить pushToArifactRepository -шаговые весь Jenkinsfiles, однако у нас есть (и не хотим) контроль над содержание любых данных Jenkinsfile.

ответ

1

Я могу порекомендовать использовать Jenkins Workflow Global Library. Здесь вы можете определить функциональные возможности, которые используются для разных заданий по конвейеру. Это, однако, потребует, чтобы каждый Jenkinsfile активно вызывал эту задачу «пост-сборка». Фактическая реализация этой задачи может быть скрыта в глобальной библиотеке, поэтому Jenkinsfile может быть очень простым.

В примере, который я использую, мои Jenkinsfile s только инициировать выполнение трубопровода следующим образом:

def pipe = new org.typo3.chefci.v1.Pipeline() 
pipe.execute() 

Фактическая реализация в central repository.

+0

Вот что я подумал. В настоящее время мы используем глобальную библиотеку для факультативного «материала». Мы действительно не хотим навязывать обязательный последний шаг во всех Jenkinsfiles, но если это единственный способ, пусть будет так. –

+0

Я имею в виду эту проблему на самом деле [тег: jenkins-конвейер]. Есть, например, [Global Post Script Plugin] (https://wiki.jenkins-ci.org/display/JENKINS/Global+Post+Script+Plugin) (никогда не использовал его лично), который мог бы выполнять ваш код после каждой сборки. Не знаю, работает ли он с WorkflowJob. – StephenKing

Смежные вопросы