- PVSM.RU - https://www.pvsm.ru -

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

Всем привет!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор: nyver

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/35843

Ссылки в тексте:

[1] Pre-Tested Commit: http://www.jetbrains.com/teamcity/features/delayed_commit.html

[2] Patch Parameter Plugin: https://wiki.jenkins-ci.org/display/JENKINS/Patch+Parameter+Plugin

[3] Jenkins Control Plugin с поддержкой Patch Parameter Plugin: https://github.com/nyver/jenkins-control-plugin/blob/master/snapshot/jenkins-control-plugin-latest-distribution.zip?raw=true

[4] Источник: http://habrahabr.ru/post/182042/