Настройка базовых проектов Freestyle

JenkinsBeginner
Практиковаться сейчас

Введение

Добро пожаловать в эту лабораторную работу по настройке базовых проектов Freestyle в Jenkins. Проект Freestyle — это очень гибкий и простой в использовании вариант в Jenkins, подходящий для любого типа проекта. Он позволяет настраивать триггеры сборки, шаги сборки и действия после сборки через веб-графический интерфейс.

В этой лабораторной работе вы узнаете, как:

  • Добавлять шаги сборки с командами оболочки (shell commands) в проект.
  • Планировать автоматический запуск сборок с помощью триггеров.
  • Архивация артефактов сборки для последующего использования.
  • Настраивать действия после сборки, такие как очистка рабочего пространства (workspace cleanup).

Экземпляр Jenkins уже запущен, и для вас создан базовый проект Freestyle с именем sample-project. Вы можете получить доступ к веб-интерфейсу Jenkins, открыв браузер Firefox на рабочем столе. Браузер автоматически откроется по адресу http://localhost:8080, поэтому вам не нужно вводить URL вручную. Вход в систему не требуется.

Добавить шаг сборки

На этом шаге вы добавите шаг сборки в ваш проект типа Freestyle. Шаги сборки являются ядром проекта, определяя действия, которые Jenkins будет выполнять, такие как компиляция кода, запуск тестов или выполнение shell-скриптов.

Сначала перейдем на страницу конфигурации проекта.

  1. Откройте браузер Firefox из настольного интерфейса. Браузер автоматически откроется по адресу http://localhost:8080, поэтому вам не нужно вводить URL вручную. Вход в систему не требуется.
  2. На дашборде Jenkins вы увидите проект sample-project. Нажмите на его название, чтобы перейти на страницу проекта.
  3. В меню слева нажмите Configure (Настроить).
Jenkins project page

Теперь вы находитесь на странице конфигурации проекта. Давайте добавим шаг сборки.

  1. Прокрутите вниз до раздела Build Steps (Шаги сборки).
  2. Нажмите на выпадающую кнопку Add build step (Добавить шаг сборки) и выберите Execute shell (Выполнить shell).
Build Steps section
  1. Появится текстовое поле. Введите следующие команды в поле Command (Команда):
echo "Building the project..."
date
echo "Build complete."
  1. Нажмите кнопку Save (Сохранить) внизу страницы.

Вы настроили шаг сборки. Давайте запустим сборку, чтобы увидеть его в действии.

  1. На странице проекта нажмите Build Now (Собрать сейчас) в меню слева.
  2. Новая сборка появится в разделе Build History (История сборок). Нажмите на номер сборки (например, #1).
  3. В меню слева для этой сборки нажмите Console Output (Вывод консоли).

Вы увидите вывод shell-команд, которые вы добавили, что подтверждает успешное выполнение вашего шага сборки.

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

Планирование сборок с помощью триггеров

На этом шаге вы научитесь планировать автоматический запуск сборок с помощью триггеров сборки. Это фундаментальная функция для непрерывной интеграции, позволяющая периодически запускать сборки.

  1. Вернитесь на страницу конфигурации sample-project (Project Page > Configure (Настроить)).
  2. Найдите раздел Build Triggers (Триггеры сборки).
  3. Установите флажок рядом с Build periodically (Периодическая сборка).
Build Triggers section
  1. Появится текстовая область Schedule (Расписание). Это поле использует синтаксис cron для определения расписания. Синтаксис состоит из 5 полей, разделенных пробелами: MINUTE HOUR DAYOFMONTH MONTH DAYOFWEEK.
  2. Чтобы сборка запускалась примерно каждую минуту, введите следующее в поле Schedule:
* * * * *

Это выражение cron означает "запускать каждую минуту". Хотя Jenkins поддерживает символ H для распределения нагрузки, H/1 * * * * фактически запускается один раз в час, а не каждую минуту. Для реального запуска каждую минуту используйте * * * * *.

  1. Нажмите Save (Сохранить).

Теперь Jenkins будет автоматически запускать новую сборку для sample-project примерно раз в минуту. Вы можете наблюдать за этим, просматривая Build History (Историю сборок) на странице проекта.

Архивирование артефактов сборки

На этом шаге вы научитесь архивировать артефакты сборки. Артефакты — это выходные файлы, создаваемые сборкой, такие как скомпилированные бинарные файлы или отчеты. Архивация делает их доступными для скачивания после завершения сборки.

Сначала нам нужно изменить наш шаг сборки, чтобы создать файл, который мы можем заархивировать.

  1. Перейдите на страницу конфигурации sample-project.
  2. Прокрутите до раздела Build Steps (Шаги сборки) и найдите поле команды Execute shell (Выполнить оболочку).
  3. Добавьте новую строку в скрипт для создания файла с именем 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 action) для архивации этого файла.

  1. Прокрутите вниз до раздела Post-build Actions (Действия после сборки).
  2. Нажмите на выпадающий список Add post-build action (Добавить действие после сборки) и выберите Archive the artifacts (Архивировать артефакты).
Add post-build action dropdown
  1. В поле Files to archive (Файлы для архивации) введите имя файла, который вы хотите заархивировать: build-info.txt. Вы также можете использовать подстановочные знаки, такие как **/*.jar, для архивации нескольких файлов.
  2. Нажмите Save (Сохранить).

Теперь запустите новую сборку, нажав Build Now (Собрать сейчас). После завершения сборки:

  1. Нажмите на последний номер сборки в Build History (Истории сборок).
  2. На странице состояния сборки вы увидите раздел Build Artifacts (Артефакты сборки) со ссылкой на build-info.txt. Вы можете нажать на нее, чтобы просмотреть или скачать файл.
Completed build page

Настройка очистки рабочей области

На этом заключительном этапе настройки вы добавите действие после сборки для очистки рабочей области (workspace). Это хорошая практика для экономии дискового пространства и обеспечения того, чтобы каждая сборка начиналась в чистой среде, предотвращая влияние файлов, сгенерированных в предыдущих сборках.

  1. Перейдите на страницу конфигурации sample-project.
  2. Прокрутите вниз до раздела Post-build Actions (Действия после сборки).
  3. Нажмите на выпадающий список Add post-build action (Добавить действие после сборки) и выберите Delete workspace when build is done (Удалить рабочую область после завершения сборки).
Add post-build action dropdown
  1. Нажмите Save (Сохранить).

Теперь, после завершения каждой сборки sample-project, Jenkins будет удалять все файлы из каталога рабочей области. Обратите внимание, что заархивированные артефакты хранятся отдельно и не затрагиваются очисткой рабочей области. Это гарантирует, что ваши артефакты сборки останутся доступными, сохраняя при этом среду сборки чистой для следующего запуска.

Резюме

Поздравляем с завершением этой лабораторной работы. Вы успешно освоили основы настройки проекта Jenkins Freestyle.

В этой лабораторной работе вы практиковались в:

  • Добавлении команды Execute shell (Выполнить оболочку) в качестве шага сборки.
  • Настройке Build Trigger (Триггер сборки) для периодического планирования сборок с использованием синтаксиса cron.
  • Создании и архивации артефактов сборки (build artifacts).
  • Настройке Post-build Action (Действие после сборки) для удаления рабочей области после сборки.

Это важные навыки для автоматизации процессов сборки, тестирования и развертывания с помощью Jenkins. Теперь вы можете применять эти концепции для создания и управления собственными конвейерами CI/CD.