Открыть список
Как стать автором
Обновить

Тестирование кода перед коммитом с помощью Jenkins и IDE от Jetbrains (IDEA, PhpStorm...)

Программирование
В этой статье я хочу расказать о настройке Jenkins'а и практически любой IDE от Jetbrains для так называемого Pre-Tested Commit. Pre-Tested Commit — это процесс тестирования изменённого кода перед комитом, в котором разработчик на основе локальных изменений формирует diff, загружает его в Jenkins и проверяет что билд проекта с его изменениями проходит успешно. После этого разработчик фиксирует изменения в репозитории.

Начнём с настройки Jenkins. Для этого нам понадобится Patch Parameter Plugin.

Устанавливаем его в Jenkins.



После установки плагина настраиваем конкретную job'у для возможности передавать в неё патч с изменениями.



Обратите внимания на настройку «Check-out Strategy». Перед каждым новым билдом нам нужно откатывать пришедшие с патчем изменения с помощью «svn revert».

После настройки джобы мы можем загрузить патч прямо через интерфейс Jenkins'а.



Но это не очень удобно, поэтому мы пойдём дальше и настроим возможность запускать билды с изменениями прямо из IDE. Для этого нам понадобится плагин Jenkins Control Plugin с поддержкой Patch Parameter Plugin.

Скачиваем его отсюда и устанавливаем в IDE.



После установки идём в настройки плагина.



В настройках устанавливаем адрес Jenkins'а и суффикс, добавляемый к пути файлов в diff'е. Обновление списка jobs рекомендую установить в 1 минуту для оперативности оповещения о результатах билда.



Всё! Теперь мы можем запускать билды с локальными изменениями прямо из IDE.

Через загрузку файла патча.



Или сразу на основе Changelist'а создавать патч и запускать с ним билд.



Статус билда отображается рядом с именем Changelist'а.



Спасибо за внимание и стабильных билдов!

Patch Parameter Plugin
Jenkins Control Plugin с поддержкой Patch Parameter Plugin

p.s. Пожелания и замечания по плагину к IDE принимаются.
Теги:pre-tested commitjenkinsideaphpstorm
Хабы: Программирование
Всего голосов 31: ↑30 и ↓1 +29
Просмотры23.5K

Похожие публикации

Frontend разработчик (pre-middle)
до 75 000 ₽ТатнефтьКазаньМожно удаленно
DevOps Engineer (Core Team)
от 150 000 ₽PleskНовосибирск
Android Developer
от 150 000 до 220 000 ₽Rentality Interactive R.Y. SLUМожно удаленно
DevOps Engineer
до 200 000 ₽ЭФКО Цифровые решенияВоронежМожно удаленно
Python разработчик (middle+)
до 200 000 ₽MONSМоскваМожно удаленно

Лучшие публикации за сутки