Создание конвейеров для нескольких проектов, особенно в распределенной архитектуре, такой как микросервисы, в наше время является более чем нормальным явлением.
Когда вы управляете несколькими конвейерами для разных проектов, может возникнуть одна проблема: у вас может быть похожий код, который должен выполняться во всех заданиях. И вы не хотите обновлять его по одному.
Например, у вас может быть общая функция для:
- создавать git-метки
- отправлять уведомления в Slack
- запускать инструмент для создания отчета или сканирования на наличие уязвимостей.
Jenkins дает возможность создать общую библиотеку, которая может быть импортирована и повторно использована в нескольких заданиях, чтобы избежать дублирования кода или глупого обслуживания.
Вот шаги, необходимые для использования этой возможности в CI/CD с Jenkins:
-
создать репозиторий для хранения вашей общей библиотеки / общих функций. см. https://github.com/rodrigocprates/jenkins-shared-library.
-
настройте общую библиотеку через конфигурации Jenkins (/configure)
- обновите свой Jenkinsfile, чтобы использовать его.
@Library('jenkins-shared-library') _ // loads all library functions
stage('Demo') {
common.sayHello("Rodrigo") // references 'common' as library 'common.groovy'
}
При каждом запуске вашего задания оно будет:
- клонирует репо этой общей библиотеки (с наиболее обновленным кодом)
- импортировать функции
- запустит любую функцию, которую вы вызовете в своем конвейере
Выводы
Легко и прямо к делу!
Вот репозиторий: https://github.com/rodrigocprates/jenkins-shared-library