Введение
Добро пожаловать в лабораторную работу по интеграции Jenkins с Git. Управление исходным кодом (SCM) является краеугольным камнем современной разработки программного обеспечения. Интеграция вашего сервера непрерывной интеграции (CI), такого как Jenkins, с системой SCM, например Git, — это фундаментальный шаг в автоматизации процессов сборки и тестирования.
В этой лабораторной работе вы научитесь:
- Проверять наличие плагина Git в Jenkins.
- Создавать проект типа Freestyle, связанный с локальным Git-репозиторием.
- Добавлять этап сборки для выполнения скрипта из репозитория.
- Запускать сборку вручную для проверки конфигурации.
- Настраивать опрос SCM (SCM polling) для автоматического запуска сборок при появлении новых коммитов.
Экземпляр Jenkins и небольшой локальный Git-репозиторий уже подготовлены для этой работы. Вы можете получить доступ к веб-интерфейсу Jenkins, открыв браузер Firefox на рабочем столе. Браузер автоматически откроется по адресу http://localhost:8080, поэтому вам не нужно вводить URL вручную. Вход в систему не требуется.
Проверка плагина Git
Jenkins использует плагины для добавления интеграций. Плагин Git предоставляет опцию Git, которую вы будете использовать при настройке задания.
- Откройте браузер Firefox из интерфейса рабочего стола. Браузер автоматически откроется по адресу
http://localhost:8080. Вход в систему не требуется. - На панели управления Jenkins нажмите на значок шестеренки в правом верхнем углу, чтобы открыть Manage Jenkins (Управление Jenkins).
- Нажмите Plugins (Плагины).
- Перейдите на вкладку Installed plugins (Установленные плагины).
- В поле фильтра введите
git. - Убедитесь, что Git отображается в списке установленных плагинов.

После подтверждения наличия плагина Git вы можете создать проект, который будет загружать исходный код из репозитория.
Создание проекта и настройка Git SCM
Теперь, когда плагин Git установлен, вы можете создать проект Jenkins и настроить его на получение исходного кода из локального репозитория, подготовленного в контейнере Jenkins.
- Вернитесь на главную панель управления Jenkins, нажав ссылку Dashboard в навигационной цепочке в левом верхнем углу.
- Нажмите New Item (Создать задание) на боковой панели слева.
- Введите
git-integration-projectв качестве имени элемента. - Выберите Freestyle project.
- Нажмите OK.
Вы перейдете на страницу настройки проекта.
- Прокрутите страницу вниз до раздела Source Code Management (Управление исходным кодом).
- Выберите опцию Git. Если вы не видите эту опцию, пожалуйста, убедитесь, что плагин Git был правильно установлен на предыдущем шаге.
- В поле Repository URL введите URL локального репозитория, подготовленного для этой лабораторной работы:
git://localhost/git-playground.git
- Оставьте Branch Specifier со значением по умолчанию
*/master. Это указывает Jenkins использовать веткуmaster. - Нажмите кнопку Save (Сохранить) в нижней части страницы.

Вы успешно создали задание Jenkins, связанное с локальным Git-репозиторием. На следующем шаге вы определите, что именно задание должно делать с полученным кодом.
Добавление этапа сборки и ручной запуск
Теперь, когда Jenkins знает, где взять код, нужно указать, что с ним делать. Вы добавите этап сборки с командами оболочки (shell), а затем запустите сборку вручную для проверки.
- На странице проекта
git-integration-projectнажмите Configure (Настроить) на боковой панели слева. - Прокрутите вниз до раздела Build Steps (Этапы сборки).
- Нажмите раскрывающийся список Add build step (Добавить этап сборки) и выберите Execute shell (Выполнить shell).
- В текстовой области Command введите следующие команды сборки:
echo "Building from the Git repository"
./build.sh
Когда задание будет запущено, Jenkins сначала клонирует Git-репозиторий в свою рабочую область, а затем выполнит эти команды внутри этой области. Скрипт build.sh находится в репозитории, поэтому успешное выполнение доказывает, что Jenkins успешно выгрузил код перед выполнением этапа shell.
- Нажмите Save.
- Вы вернетесь на страницу проекта. Нажмите Build Now (Собрать сейчас) на боковой панели слева, чтобы начать сборку.
Новая сборка появится в панели Build History (История сборок). Дождитесь завершения (значок статуса станет синим, если сборка прошла успешно).
- Нажмите на номер сборки (например,
#1). - Нажмите Console Output (Вывод консоли) в меню сборки.

Вы должны увидеть вывод, подтверждающий, что Jenkins клонировал репозиторий и успешно выполнил ваши команды.
Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/git-integration-project
...
[git-integration-project] $ /bin/sh -xe /tmp/jenkins123.sh
+ echo Building from the Git repository
Building from the Git repository
+ ./build.sh
Repository build script running
Workspace: /var/jenkins_home/workspace/git-integration-project
README.md
build.sh
Finished: SUCCESS
Включение автоматической сборки с помощью опроса SCM
Ручной запуск сборок полезен для тестирования, но настоящая сила CI заключается в автоматизации. На этом шаге вы настроите Jenkins на опрос Git-репозитория на предмет изменений.
- Вернитесь на страницу конфигурации
git-integration-project(Страница проекта > Configure). - Прокрутите вниз до раздела Build Triggers (Триггеры сборки).
- Установите флажок рядом с Poll SCM (Опрос SCM).
- Появится текстовое поле Schedule (Расписание). Оно использует синтаксис cron для определения того, как часто Jenkins должен проверять репозиторий на наличие изменений. Чтобы опрашивать каждую минуту, введите следующее:
* * * * *
- Нажмите Save.
Расписание сохраняется вместе с конфигурацией задания. Теперь Jenkins будет проверять настроенный репозиторий раз в минуту и запускать новую сборку при обнаружении нового коммита.
- Вернитесь в интерфейс Jenkins и перейдите на страницу
git-integration-project. - На боковой панели слева вы увидите новую опцию Git Polling Log (Журнал опроса Git). Нажмите на нее.
- На этой странице отображается активность опроса после того, как Jenkins выполнит хотя бы один цикл. Для появления первой записи может потребоваться до одной минуты. Вы должны увидеть записи, подобные этим:
Started on ...
Using strategy: Default
[poll] Last Built Revision: Revision ...
The recommended git tool is: NONE
No credentials specified
> git --version ## timeout=10
> git ls-remote -h -- git://localhost/git-playground.git ## timeout=10
...
No changes

Это демонстрирует, что Jenkins настроен на автоматический опрос репозитория. В реальном проекте репозиторий обычно размещается на Git-сервере, и Jenkins будет выполнять сборку при появлении новых коммитов.
Резюме
В этой лабораторной работе вы получили практический опыт работы с одной из важнейших интеграций в CI-конвейере: подключением Jenkins к Git-репозиторию для контроля версий.
Вы успешно:
- Проверили наличие необходимого плагина Git, обеспечивающего возможности интеграции Jenkins с Git.
- Создали проект Freestyle и настроили его на выгрузку кода из Git-репозитория.
- Определили этап сборки для выполнения shell-скрипта из полученного кода.
- Проверили настройку путем запуска сборки вручную.
- Настроили автоматический триггер сборки с помощью Poll SCM, что позволяет Jenkins автоматически обнаруживать и собирать новые коммиты.
Эти навыки являются фундаментальными для автоматизации рабочего процесса разработки и представляют собой первый шаг к созданию надежного и эффективного CI/CD конвейера с использованием Jenkins.

