Pull to refresh

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

Programming
В этой статье я хочу расказать о настройке 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 принимаются.
Tags:pre-tested commitjenkinsideaphpstorm
Hubs: Programming
Total votes 31: ↑30 and ↓1 +29
Views23.5K

Comments 19

Only those users with full accounts are able to leave comments. Log in, please.

Popular right now

Node.js: серверный JavaScript
April 26, 202127,000 ₽Loftschool
SEO-специалист
April 26, 202164,900 ₽Нетология
Факультет дизайна
April 26, 2021236,988 ₽GeekBrains