
Предпосылки
Установить Дженкинс
Что такое общая библиотека?
Общая библиотека в Jenkins — это повторно используемая коллекция скриптов Groovy, которая может использоваться несколькими заданиями Jenkins. Это позволяет вам совместно использовать код и функции между различными заданиями, что может сделать ваши сборки более эффективными и простыми в обслуживании.
Чтобы понять концепцию разделяемых библиотек, давайте рассмотрим пример в реальном времени. Представьте, что у вас есть несколько конвейеров Jenkins, которым требуется общий набор функций для взаимодействия с системой контроля версий, такой как Git. Вместо дублирования кода, связанного с Git, в каждом конвейере вы можете создать общую библиотеку, которая инкапсулирует необходимые операции Git.
Структура папок общей библиотеки

- Каталог
srcструктурирован как стандартный проект Java. Это означает, что вы можете использовать операторimportдля импорта классов из других каталогов в каталогsrc. - Каталог
vars— это специальный каталог, содержащий глобальные переменные, определенные в общей библиотеке. Доступ к этим переменным можно получить из любого задания Jenkins, которое импортирует общую библиотеку. - Каталог
resources— это обычный каталог, который может содержать файлы любого типа. Однако обычно он используется для хранения статических ресурсов, используемых общей библиотекой.
Шаги по настройке общей библиотеки в Jenkins
Создайте репозиторий в любом инструменте управления исходным кодом.
Здесь мы используем GitHub.

Клонируйте только что созданный репозиторий
git clone https://github.com/tejashreeSalvi/shared-lib.git

Создайте структуру папок
cd shared-lib # create a master branch (optional) git branch master git checkout master # create vars directory mkdir vars cd vars
Мы создали каталог vars, в котором мы собираемся написать нашу повторно используемую функцию.
Рассмотрим пример реального времени. Представьте, что у вас есть несколько конвейеров Jenkins, которым требуется общий набор функций для взаимодействия с системой контроля версий, такой как Git. Вместо дублирования кода, связанного с Git, в каждом конвейере вы можете создать общую библиотеку, которая инкапсулирует необходимые операции Git.
Создание вашей первой общей библиотеки для проверки scm.
checkoutCode.groovy
def call(String repoUrl, String branch){
def workingDir = "${env.WORKSPACE}"
sh "git clone ${repoUrl} ${workingDir}"
sh "git checkout ${branch}"
return workingDir
}
- Метод
call— это специальный метод в общей библиотеке Jenkins, который позволяет вызывать функцию напрямую из конвейера Jenkins. ${env.WORKSPACE}назначает переменную среды JenkinsWORKSPACEshиспользуется для выполнения команды оболочки для клонирования репозитория вworkingDirи извлечения (переключения) на указанныйbranch.- путь
workingDirвозвращается в Jenkins Pipeline.
Эту часть функциональности можно повторно использовать в конвейерах Jenkins, которые импортируют и используют общую библиотеку.
Зафиксируйте свои изменения в репозитории Git.
git add . git commit -m "checkout scm fucntionality added" git push origin master

Код успешно отправлен и доступен в удаленном репозитории.

Настройте глобальные конвейерные библиотеки (общая библиотека) в Jenkins.
Войдите в Дженкинс.
Go to Manage Jenkins → Configure System

Следующий шаг. Найдите Global Pipeline Libraries и настройте параметры.

- Введите имя общей библиотеки:
shared-lib - Установите ветку по умолчанию:
master(Jenkins будет рассматривать ветку по умолчанию, если при импорте общей библиотеки не указана ветка).

3. Настройте созданный нами репозиторий для Shared Library: https://github.com/tejashreeSalvi/shared-lib.git
4. Настройте учетные данные, если ваш репозиторий частный
5. Нажмите Save
Ух ты! мы закончили с частью конфигурации.
Давайте использовать разделяемую библиотеку в пайплайнах
Чтобы импортировать библиотеку, мы используем аннотацию
@Libraryи указываем имя библиотеки, определенное в глобальной конфигурации Jenkins.
Создайте конвейер Дженкинса
Перейдите к New Item и дайте подходящее имя конвейера first-shared-lib-pipeline и введите pipeline

Нажмите на OK
Скрипт для импорта общей библиотеки
Перейдите к Pipeline Script→ Добавить сценарий и Save
@Library("shared-lib@master") _
pipeline {
agent any
stages {
stage('Code Checkout') {
steps {
script {
def workingDir = checkoutCode("https://github.com/tejashreeSalvi/django-todo-cicd.git", "develop")
echo $workingDir
}
}
}
}
}
@Library("shared-lib@master") _: это будет импортировать разделяемую библиотеку с именем «shared-lib» в ветку «master». Библиотека доступна для использования в этом конвейере Jenkins.
2. def workingDir = checkoutCode("https://github.com/tejashreeSalvi/django-todo-cicd.git", "develop"): эта строка вызывает функцию checkoutCode из общей библиотеки, передавая URL-адрес репозитория и имя ветки.
Следовательно, вы можете создать несколько конвейеров и использовать функцию checkoutCode из общей библиотеки для проверки scm. Вместо того, чтобы снова и снова писать блок кода во всех пайплайнах Jenkins.

Постройте трубопровод.
Перейдите к first-shared-lib-pipeline → Нажмите Build Now

Сборка будет запущена. Проверьте консольный вывод сборки.

Если вы внимательно посмотрите, то обнаружите, что общая библиотека успешно загружена.

Используя общую библиотеку и вызывая функцию checkoutCode, этот сценарий конвейера выполняет операцию проверки кода, клонируя указанный репозиторий и переключаясь на ветвь develop.
Ура! Мы создали наш первый повторно используемый код, используя Shared Library.
Когда использовать и когда не использовать общую библиотеку.

Вот и все! Мы изучили основы общей библиотеки. Надеюсь, вы будете использовать его в своем следующем проекте.