Java-разработчик в РосБизнесКонсалтинг · 25.06
Как я Jenkins с Bitbucket'ом дружил
Сразу скажу, с в этом я новичек, приятного прочтения:)
История началась с того, что нам в проекте понадобился анализ кода. Рассмотрев SonarQube выяснилось, что оно слишком дорого, поэтому с моей стороны было предложение использовать плагин для гредла CheckStyle для генерации репортов анализа кода. После n-ого количества проб и ошибок, я пришел к связке Jenkins-Bitbucket-CheckStyle.
Я понимал что можно сделать декоратор PR для битбакета с помощью этих инструментов и приступил к выполнению. С самого начала столкнулся с проблемой когда Jenkins просто на отрез отказывался ставить любые плагины, решилась эта проблема, только спустя время, причем сама.
Установив плагин "BitBucket" я начал дружить Jenkins и BitBucket через веб хуки.
После установки плагина "BitBucket" я настроил интеграцию Jenkins и Bitbucket через вебхуки. Затем настало время написать pipeline для запуска Gradle задачи в Jenkins.
Шаги реализации 1. Настройка Jenkins Первым шагом была настройка Jenkins для работы с нашим репозиторием в Bitbucket. Это включало:
Настройку Jenkins Pipeline для выполнения шагов проверки кода. Конфигурацию учетных данных для доступа к Bitbucket. Настройку параметров окружения, таких как URL сервера Bitbucket, токен доступа, проект и репозиторий.
2. Клонирование репозитория Я настроил Jenkins для автоматического клонирования репозитория из Bitbucket при каждом запуске Pipeline. Это потребовало использования корректных учетных данных для аутентификации и настройки ветки, которую нужно проверять.
3. Интеграция Checkstyle CheckStyle был выбран в качестве инструмента статического анализа кода. Я настроил Jenkins для выполнения CheckStyle и генерации отчета, содержащего информацию о нарушениях стилевых требований в коде. Этот отчет включал детали, такие как файл и строка кода, где было обнаружено нарушение.
4. Парсинг результатов Checkstyle Я разработал механизм для обработки результатов CheckStyle. Цель заключалась в том, чтобы извлечь строки кода, измененные в pull request, и сравнить их с результатами анализа CheckStyle. Это позволило определить, какие из найденных нарушений относятся к новым или измененным строкам кода. Отчет сохранялся в формате XML для удобного парсинга в будущем.
5. Автоматическое комментирование в Bitbucket На основании результатов анализа CheckStyle я настроил Jenkins для автоматического добавления комментариев в pull request в Bitbucket. Эти комментарии содержали информацию о нарушениях стилевых требований и помогали разработчикам быстро идентифицировать и исправлять проблемы.
Процесс работы
Механизм работы выглядит следующим образом:
Открывается PR, через SCM Jenkins обрабатывается вебхук и фетчатся изменения, забирается последний открытый PR. Выполняется checkout на коммит и запускается CheckStyle. Параметры запуска CheckStyle были настроены вручную для обработки изменений в пределах PR (по умолчанию сканируется весь проект). После анализа в workspace Jenkins появляются отчеты. Формат XML был выбран для упрощения парсинга. Jenkins проводит анализ и отправляет curl-запросы в Bitbucket на каждую ошибку. Если CheckStyle находит ошибку, проверяется, была ли она сделана в этом PR. Если да, то отправляется комментарий к строке с текстом ошибки.
Результаты Внедрение этого процесса позволило создать автоматизированную систему, которая значительно улучшила качество кода и ускорила процесс его проверки.
еще контент автора
еще контент автора
Java-разработчик в РосБизнесКонсалтинг · 25.06
войдите, чтобы увидеть
и подписаться на интересных профи