Как добиться непрерывной доставки с Jenkins и SVN - PullRequest
0 голосов
/ 23 марта 2012

Я читаю о непрерывной доставке , или философия / практика, согласно которой фиксация в каталогах управления исходным кодом вызывает сборку CI, и если сборка завершается неудачей, то вся разработка останавливается, пока коммиттер не решит проблему, повторно фиксирует и исправляет сборку. Мне действительно, действительно нравится этот менталитет.

Мы используем Jenkins для нашего CI-сервера и SVN для SCM (это диктуемые компанией «стандартные» технологии, поэтому здесь нет выбора в выборе технологии).

Мне интересно, как я мог достичь этого. Я установил и Subversion Plugin, и Tagging Subversion Plugin для Jenkins, но не вижу, где я могу настроить SVN-триггер для запуска сборки, и документация для обоих этих плагинов не указывает на то, что они даже имеют эту возможность .

Даже когда я это выясню, мне нужен способ заморозить SVN в случае неудачной сборки (чтобы другие разработчики не продолжали проверять код и повторно запускать неудачную сборку).

Я прошу слишком много здесь? Или мне просто не хватает нужного плагина? Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Плагин Subversion содержит встроенную справку о том, как его использовать.Перейдите к настройке задания -> Управление исходным кодом -> отключите Subversion.Вы увидите записи формы для Subversion Plugin, нажмите на отметки ? рядом с записями формы.

Замораживание сборки: я не думаю, что вы должны полагаться на жесткие «блокировки» (такие как триггеры SVN, которые предотвращаютсовершает).С Email-Ext Plugin вы можете настроить отправку электронной почты на различные виды событий сборки.Например, Дженкинс может отправить электронное письмо «виновникам» (людям, чьи коммиты нарушили сборку).По моему опыту, кто-то должен время от времени проверять систему сборки, проверять, кто ее нарушил, и «пинговать» их.

0 голосов
/ 24 марта 2012

Мне нужен способ заморозить SVN в случае неудачной сборки

Хотя я считаю это плохой практикой, но ... вкусы могут отличаться. Пуленепробиваемый метод предотвращения коммитов

  • active pre-commit hook (используется мой собственный акцент)

ловушка pre-commit запускается непосредственно перед транзакцией фиксации повышен до новой ревизии . Как правило, этот крючок используется для защиты против коммитов, которые запрещены из-за содержания или местоположения (например, Ваш сайт может потребовать, чтобы все коммиты в определенную ветку включали номер билета от багтрека, или что входящее сообщение в лог непуста).

Если программа ловушки перед фиксацией возвращает ненулевое значение выхода , фиксация прервана , транзакция фиксации удалена и все напечатано в stderr отправляется обратно клиенту .

  • , который при взаимодействии с Jenkins возвращает ненулевой код завершения и текст описания, в то время как сборка не удалась, и ноль при успешной сборке
...