Введение
Добро пожаловать на лабораторную работу по настройке базовых проектов типа Freestyle в Jenkins. Проект Freestyle — это гибкий и простой в использовании вариант в Jenkins, подходящий для любого типа задач. Он позволяет настраивать триггеры сборки, шаги сборки и пост-сборочные действия через графический веб-интерфейс.
В этой лабораторной работе вы научитесь:
- Добавлять шаги сборки с использованием команд оболочки (shell).
- Планировать автоматический запуск сборок с помощью триггеров.
- Архивировать артефакты сборки для последующего использования.
- Настраивать пост-сборочные действия, такие как очистка рабочего пространства.
Экземпляр Jenkins уже запущен, и для вас создан базовый проект Freestyle под названием sample-project. Вы можете получить доступ к веб-интерфейсу Jenkins, открыв браузер Firefox на рабочем столе. Браузер автоматически откроется по адресу http://localhost:8080, поэтому вам не нужно вводить URL вручную. Вход в систему не требуется.
Добавление шага сборки
На этом этапе вы добавите шаг сборки в свой проект Freestyle. Шаги сборки являются основой проекта, определяя действия, которые будет выполнять Jenkins, такие как компиляция кода, запуск тестов или выполнение скриптов оболочки.
Сначала перейдем на страницу конфигурации проекта.
- Откройте браузер Firefox на рабочем столе. Браузер автоматически откроется по адресу
http://localhost:8080. Вход в систему не требуется. - На панели управления Jenkins вы увидите
sample-project. Нажмите на его название, чтобы перейти на страницу проекта. - В меню слева нажмите Configure.

Теперь вы находитесь на странице конфигурации проекта. Давайте добавим шаг сборки.
- Прокрутите страницу вниз до раздела Build Steps.
- Нажмите кнопку раскрывающегося списка Add build step и выберите Execute shell.

- Появится текстовое поле. Введите следующие команды в поле Command:
echo "Building the project..."
date
echo "Build complete."
- Нажмите кнопку Save в нижней части страницы.
Теперь вы настроили шаг сборки. Давайте запустим сборку, чтобы увидеть её в действии.
- На странице проекта нажмите Build Now в меню слева.
- Новая сборка появится в разделе Build History. Нажмите на номер сборки (например,
#1). - В меню слева для этой сборки нажмите Console Output.
Вы увидите вывод добавленных вами команд оболочки, подтверждающий, что шаг сборки был выполнен успешно.
Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/sample-project
[sample-project] $ /bin/sh -xe /tmp/jenkins12345.sh
+ echo 'Building the project...'
Building the project...
+ date
Tue Jan 1 12:00:00 UTC 2024
+ echo 'Build complete.'
Build complete.
Finished: SUCCESS
Планирование сборок с помощью триггеров
На этом этапе вы узнаете, как планировать автоматический запуск сборок с помощью триггеров. Это фундаментальная функция для непрерывной интеграции (CI), позволяющая запускать сборки периодически.
- Вернитесь на страницу конфигурации
sample-project(Страница проекта > Configure). - Найдите раздел Triggers.
- Установите флажок рядом с Build periodically.

- Появится текстовое поле Schedule. Это поле использует синтаксис cron для определения расписания. Синтаксис состоит из 5 полей, разделенных пробелами:
MINUTE HOUR DAYOFMONTH MONTH DAYOFWEEK. - Чтобы запускать сборку примерно каждую минуту, введите следующее в поле Schedule:
* * * * *
Это выражение cron означает «запускать каждую минуту». Хотя Jenkins поддерживает символ H для распределения нагрузки, H/1 * * * * на самом деле запускается один раз в час, а не каждую минуту. Для запуска именно каждую минуту используйте * * * * *.
- Нажмите Save.
Теперь Jenkins будет автоматически запускать новую сборку для sample-project примерно раз в минуту. Вы можете наблюдать за этим в разделе Build History на странице проекта.
Архивирование артефактов сборки
На этом этапе вы узнаете, как архивировать артефакты сборки. Артефакты — это выходные файлы, созданные в процессе сборки, такие как скомпилированные бинарные файлы или отчеты. Их архивирование делает их доступными для скачивания после завершения сборки.
Сначала нам нужно изменить наш шаг сборки, чтобы создать файл, который мы сможем заархивировать.
- Перейдите на страницу конфигурации
sample-project. - Прокрутите до раздела Build Steps и найдите поле команды Execute shell.
- Добавьте новую строку в скрипт для создания файла с именем
build-info.txt. Переменная$BUILD_NUMBER— это переменная окружения, предоставляемая Jenkins, которая содержит текущий номер сборки.
echo "Building the project..."
date
echo "Build complete."
echo "This artifact is from build #$BUILD_NUMBER" > build-info.txt
Теперь настроим пост-сборочное действие для архивирования этого файла.
- Прокрутите вниз до раздела Post-build Actions.
- Нажмите кнопку раскрывающегося списка Add post-build action и выберите Archive the artifacts.

- В поле Files to archive введите имя файла, который хотите заархивировать:
build-info.txt. Вы также можете использовать подстановочные знаки, такие как**/*.jar, для архивирования нескольких файлов. - Нажмите Save.

Теперь запустите новую сборку, нажав Build Now. После завершения сборки:
- Нажмите на номер последней сборки в Build History.
- На странице статуса сборки вы увидите раздел Build Artifacts со ссылкой на
build-info.txt. Вы можете нажать на неё, чтобы просмотреть или скачать файл.

Настройка очистки рабочего пространства
На этом заключительном этапе настройки вы добавите пост-сборочное действие для очистки рабочего пространства. Это хорошая практика, позволяющая экономить место на диске и гарантировать, что каждая сборка начинается в «чистой» среде, предотвращая конфликты с файлами, созданными в предыдущих сборках.
- Перейдите на страницу конфигурации
sample-project. - Прокрутите вниз до раздела Post-build Actions.
- Нажмите кнопку раскрывающегося списка Add post-build action и выберите Delete workspace when build is done.

- Нажмите Save.

Теперь после завершения каждой сборки sample-project Jenkins будет удалять все файлы в директории рабочего пространства. Обратите внимание, что заархивированные артефакты хранятся отдельно и не затрагиваются очисткой рабочего пространства. Это гарантирует, что ваши артефакты сборки останутся доступными, а среда сборки будет чистой для следующего запуска.
Резюме
Поздравляем с завершением этой лабораторной работы. Вы успешно освоили основы настройки проекта Jenkins Freestyle.
В этой работе вы научились:
- Добавлять команду Execute shell в качестве шага сборки.
- Настраивать Build Trigger для периодического запуска сборок с использованием синтаксиса cron.
- Создавать и архивировать артефакты сборки.
- Настраивать Post-build Action для удаления рабочего пространства после сборки.
Это важные навыки для автоматизации процессов сборки, тестирования и развертывания с помощью Jenkins. Теперь вы можете применять эти концепции для создания и управления собственными CI/CD конвейерами.

