Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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

subversion
jenkins
Теги: #<Tag:0x00007f7b613ba810> #<Tag:0x00007f7b613ba658>

(Ray Romanov) #1

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


(Stan) #2

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


(Ray Romanov) #3

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


(vmaximv) #4

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


(Ray Romanov) #5

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


(vmaximv) #6

Ну как бы да.

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


(Ray Romanov) #7

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


(vmaximv) #8

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


(Ray Romanov) #9

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


(Stan) #10

Кратко.

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

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

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


(Ray Romanov) #11

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


(vmaximv) #12

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


(Stan) #13

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