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

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

Вы успешно создали задачу Jenkins, связанную с репозиторием Git. На следующем шаге вы определите, что задача должна делать с кодом.
Добавление шага сборки и запуск ручной сборки
Теперь, когда Jenkins знает, откуда брать код, вам нужно указать, что делать с этим кодом. Вы добавите шаг сборки с командами оболочки и затем вручную запустите сборку для ее тестирования.
- На странице проекта
git-integration-projectнажмите Configure (Настроить) в боковой панели слева. - Прокрутите вниз до раздела Build Steps (Шаги сборки).
- Нажмите выпадающее меню Add build step (Добавить шаг сборки) и выберите Execute shell (Выполнить оболочку).
- В текстовой области Command (Команда) введите следующие команды сборки:
echo "Building the project..."
date
echo "Listing files in workspace:"
ls -la
echo "Build complete!"
Когда задача будет запущена, Jenkins сначала клонирует репозиторий Git в свое рабочее пространство, а затем выполнит эти команды из этого рабочего пространства.
- Нажмите 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 rev-parse --resolve-git-dir /var/jenkins_home/workspace/git-integration-project/.git ## timeout=10
...
[git-integration-project] $ /bin/sh -xe /tmp/jenkins123.sh
+ echo Building the project...
Building the project...
+ date
Mon Jan 1 12:01:00 UTC 2024
+ echo Listing files in workspace:
Listing files in workspace:
+ ls -la
total 24
drwxr-xr-x 3 jenkins jenkins 4096 Aug 21 10:33 .
drwxr-xr-x 3 jenkins jenkins 4096 Aug 21 10:33 ..
drwxr-xr-x 8 jenkins jenkins 4096 Aug 21 10:33 .git
-rw-r--r-- 1 jenkins jenkins 32 Aug 21 10:33 README.md
-rw-r--r-- 1 jenkins jenkins 15 Aug 21 10:33 file1.txt
-rw-r--r-- 1 jenkins jenkins 15 Aug 21 10:33 file2.txt
+ echo Build complete!
Build complete!
Finished: SUCCESS
Включение автоматических сборок с помощью опроса SCM
Ручной запуск сборок полезен для тестирования, но настоящая сила CI заключается в автоматизации. На этом шаге вы настроите Jenkins для автоматического запуска сборки при обнаружении изменений в репозитории Git.
- Вернитесь на страницу конфигурации для
git-integration-project(Project Page > Configure (Настроить)). - Прокрутите вниз до раздела Build Triggers (Триггеры сборки).
- Установите флажок рядом с Poll SCM (Опрос SCM).
- Появится текстовое поле Schedule (Расписание). Оно использует синтаксис cron для определения того, как часто Jenkins должен проверять репозиторий на наличие изменений. Чтобы опрашивать каждую минуту, введите следующее:
* * * * *
- Нажмите Save (Сохранить).
Поскольку мы используем удаленный репозиторий GitHub (https://github.com/labex-labs/git-playground), мы не можем напрямую его изменить для тестирования триггера опроса. Однако вы можете наблюдать, как работает опрос SCM:
- Вернитесь в интерфейс Jenkins и перейдите на страницу
git-integration-project. - В левой боковой панели вы увидите новую опцию под названием Git Polling Log (Журнал опроса Git). Нажмите на нее.
- Эта страница показывает активность опроса. Вы должны увидеть записи, подобные следующим:
Started on Aug 21, 2025, 10:36:00 AM
Using strategy: Default
[poll] Last Built Revision: Revision d22f46ba8c2d4e07d773c5126e9c803933eb5898 (refs/remotes/origin/master)
The recommended git tool is: NONE
No credentials specified
> git --version ## timeout=10
> git --version ## 'git version 2.30.2'
> git ls-remote -h -- https://github.com/labex-labs/git-playground ## timeout=10
Found 3 remote heads on https://github.com/labex-labs/git-playground
[poll] Latest remote head revision on refs/heads/master is: d22f46ba8c2d4e07d773c5126e9c803933eb5898 - already built by 1
Done. Took 0.36 sec
No changes
Это демонстрирует, что Jenkins успешно опрашивает удаленный репозиторий на наличие изменений каждую минуту. В реальном сценарии, когда новые коммиты будут отправлены в репозиторий, Jenkins автоматически запустит новую сборку.
- Вы также можете вручную запустить еще одну сборку, нажав Build Now (Собрать сейчас), чтобы увидеть, как система опроса интегрируется с ручными сборками.
Резюме
В этой лабораторной работе вы получили практический опыт одной из наиболее важных интеграций в CI-конвейере: подключение Jenkins к репозиторию системы контроля версий Git.
Вы успешно:
- Убедились, что основной плагин Git (Git plugin) доступен для включения возможностей интеграции Jenkins с Git.
- Создали проект типа Freestyle и настроили его для получения кода из репозитория Git.
- Определили шаг сборки для выполнения скрипта оболочки из полученного кода.
- Проверили настройку, выполнив ручную сборку.
- Настроили триггер автоматической сборки с помощью Poll SCM (Опрос SCM), который позволяет Jenkins автоматически обнаруживать и собирать новые коммиты.
Эти навыки являются основополагающими для автоматизации рабочего процесса разработки и представляют собой первый шаг к построению надежного и эффективного CI/CD-конвейера с использованием Jenkins.

