Вступление
Одна из самых больших проблем, с которой сталкиваются разработчики, – это гибкость или, другими словами, способность своевременно выпускать стабильные выпуски продуктов. С каждым спринтом нам нужно предоставлять новые функции, без ошибок функции.
И зачем беспокоиться о создании, тестировании и развертывании вручную, когда у нас может быть автоматизированный процесс? Процесс, который проверял бы каждый фрагмент кода перед его объединением в стабильную ветвь и последующим развертыванием. Например, развертывание его на тестовой машине, готовой для команды контроля качества.
Существует множество инструментов для реализации этого процесса CI/CD, но мы остановимся на потрясающем инструменте с открытым исходным кодом, Дженкинс .
Дженкинс-это сервер автоматизации. Это помогает автоматизировать создание, тестирование и развертывание вашего приложения. Дженкинс поддерживает Git и Maven, которые будут нашими приглашенными звездами в этом мини-проекте.
В этой статье мы расскажем вам о настройке процесса Дженкинса, который будет запускаться каждый раз при совершении фиксации. Затем мы убедимся, что наш репозиторий GitHub правильно настроен для этого сценария. Наконец, сделаем небольшой тест, чтобы убедиться, что все работает правильно.
Предпосылки
Чтобы вы могли следовать этому руководству, необходимо настроить некоторые мелочи.
- Сервер Дженкинса. Вы можете использовать DigitalOcean для создания капли с готовым к использованию Дженкинсом. Это должно занять менее 5 минут.
- Репозиторий GitHub. Обратите внимание, что вы можете использовать хостинг-провайдера и систему управления версиями, если они предоставляют вам возможность добавлять веб-ссылки.
- Приложение для весенней загрузки с тестами. Если у вас его еще нет, вы можете клонировать этот репозиторий.
Настройка Дженкинса
Поэтому после того, как вы создали каплю Дженкинса, вам необходимо выполнить несколько шагов, чтобы машина была запущена и запущена.
Давайте подключимся к нашей недавно созданной капле и подготовим нашу среду. Мы начнем с выполнения некоторых команд в терминале:
$ ssh [email protected]_VM_IP
Вам будет предложено создать свой пароль Дженкинса. Используйте надежный пароль и перезапустите службу Jenkins:
$ systemctl restart jenkins
Ваш сервер Дженкинса теперь доступен по следующему адресу http://YOUR_VM_IP:8080
и вы должны увидеть что-то подобное. После этого вы будете перенаправлены на страницу входа в систему:
И вуаля, мы готовы!
Имя пользователя по умолчанию – admin
, а пароль-тот, который вы создали в начале.
Прежде чем мы создадим наш первый проект, давайте перейдем в Управление Дженкинсом ~> Управление плагинами и установим GitHub Pull Request Builder .
Теперь перейдите в Управление Дженкинсом ~> Настройка системы настройка сервера GitHub. Давайте пойдем и нажмем на Новый элемент в левом верхнем углу экрана:
Теперь продолжайте, введите имя для вашего нового проекта и выберите Проект фристайла :
Нам нужно указать некоторые параметры для проекта, чтобы Дженкинс знал, какой коммит он должен использовать для сборки и тестирования.
Первое, что нам нужно сделать, это указать URL-адрес проекта на вкладке Общие и Проект GitHub .
На вкладке Управление исходным кодом выберите Git . После ввода URL-адреса репозитория и учетных данных в разделе Разветвленный для сборки используйте ${ghprbActualCommit}
.
Нажмите на Дополнительно… нажмите кнопку и добавьте следующие сведения:
Git Essentials
Ознакомьтесь с этим практическим руководством по изучению Git, содержащим лучшие практики и принятые в отрасли стандарты. Прекратите гуглить команды Git и на самом деле изучите это!
- Название:
происхождение
- Ссылка:
+ссылки/pull/${ghprbPullId}/*:ссылки/пульты/источник/pr/${ghprbPullId}/*
Примечание: Это значение требуется для построения только запросов на извлечение.
После настройки нашего репозитория нам необходимо указать, когда будет запущено это задание. Для этого перейдите на вкладку Создание триггеров и выберите GitHub Pull Request Builder .
Во-первых, выберите учетные данные, настроенные ранее, и проверьте Использовать крючки GitHub для запуска сборки . Теперь добавьте статус фиксации обновления во время сборки триггера и настройте его, как на изображении:
Добавьте Сообщения о состоянии сборки триггер для УСПЕХА
, ОШИБКИ
и СБОЯ
.
Для этапа Сборка мы добавим Вызов целевых объектов Maven верхнего уровня со следующими настройками:
- Версия Maven – желаемая версия Maven, которую можно настроить в Конфигурация системы
- Цели –
чистая установка -U
- ПОМ –
pom.xml
Нажмите Сохранить и мы закончили!
Конфигурация репозитория GitHub
До сих пор нам удавалось настроить рабочий процесс Дженкинса, но как насчет GitHub? Вот что мы собираемся сделать прямо сейчас.
Перейдите в Настройки на странице репозитория и выберите опцию Веб-книги в меню слева. Добавьте новый веб-крючок со следующими деталями:
Для URL-адреса полезной нагрузки введите http://YOUR_VM_IP:8080/ghprbhook/
и мы выберем Запросы на извлечение в качестве опции запуска. Тип содержимого должен быть application/json
. Оставьте поле Секретно пустым и Сохраните .
Тестирование рабочего процесса
Момент, которого мы так долго ждали. Создайте новую ветвь, отправьте ее на GitHub, а затем создайте запрос на извлечение. Как только мы создадим запрос на вытягивание, на Дженкинса будет запущено задание:
Вскоре на странице запроса на вывод появится ссылка Подробности . Если вы нажмете на ссылку, вы увидите страницу, подобную этой:
Теперь, если мы перейдем к выходу консоли , мы увидим, что все тесты прошли:
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0 ... Finished: SUCCESS
Ради этого урока я сделаю еще одну фиксацию с неудачным тестом, чтобы убедиться, что он работает правильно. И результат:
[ERROR] Tests run: 3, Failures: 1, Errors: 0, Skipped: 0 ... Finished: FAILURE
Здесь мы успешно внедрили закрытую проверку для проектов Spring Boot, используя GitHub и Jenkins.
Вывод
Ожидается, что инженеры-программисты будут предоставлять своим клиентам решения без ошибок. При наличии сложной логики первостепенное значение приобретает тестирование программного обеспечения и обеспечение проверок и тестовых случаев, чтобы убедиться в стабильности проекта.
В этой статье мы реализовали закрытую регистрацию для проектов Spring Boot, используя GitHub и Jenkins, чтобы обеспечить прохождение проверок в коде, который мы запускаем.