t.me/atinfo_chat Telegram группа по автоматизации тестирования

Jenkins: Реакция на каждый commit в Subversion

Теги: #<Tag:0x00007fd7677836d8> #<Tag:0x00007fd767783610>

Возникла (точнее давно существует) проблема, суть в чем:
Jenkins опрашивает Subversion раз в минуту (минимальный интервал), но есть проблема, иногда получается, что в эту минуту отправляют commit несколько разработчиков и как следствие происходит выкатка всех этих commit в один присест. Засада в том что для определения групп автотестов используется скрипт, который на входе получает номер ревизии (только один номер, без вариантов) и получается так, что выполняются тесты только для последнего commit в этой куче.
Как заставить Jenkins или его модуль Subversion запускать Job для каждого commit по отдельности из этой кучи?

Самое простое на мой взгляд - добавить пост-коммит хук. В гугле миллион ссылок, например http://michal.karzynski.pl/blog/2014/04/19/continuous-integration-server-for-django-using-jenkins/

Ignore post-commit hooks - единственная опция связанная с хуком

Вы статью прочитали?

Это ответ на мой вопрос?

Ну как бы да.

http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks
https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin

Честно говоря ничего не понял (в англицком дуб-дерево), а вот действительно можно ли ответить на вопрос не посылая подальше (по ссылкам)?

Полноценный ответ будет тянуть на приличную статью в <базе знаний>.
Неполноценный будет звучать так - в используемой CVS через пост-коммит-хук выполняется HTTP реквест который тригает ран джобы в дженкинсе.

Опять же, это абстрактное описание, честно ни о чем мне не говорит.
Все жду такой вариант ответа:
Тут ставишь флажок.
Тут вбиваешь такой код.
Профит.

Кратко.

Триггеришь билд удаленно, настраиваешь для этого токен:

Затем в свн-е в hooks/post-commit прописываешь вызов запуска билда через то что настроил выше
curl %ссылка из настроек%

На скриншоте зачем-то Poll SCM каждые 10 минут, но вам это не надо, раз вы хуком будете это делать.

Все глаза проел, нет такой опции:

У вас секьюрити в дженкинсе не настроена.
Без нее билды тригаются безо всяких токенов.

Я как-то даже не предполагал что кто-то не настраивает это, тогда просто %job%/build энжпоинт дёргайте курлом или чем угодно.