Как я могу отказаться от ртутных регистраций, которые нарушают сборку? - PullRequest
3 голосов
/ 11 сентября 2011

У меня есть проект Java, который управляется с помощью Mercurial и построен с помощью Jenkins. Есть ли способ запретить разработчикам проверять код, который нарушает сборку? Я знаю, что могу сделать это с помощью Ant и Mercurial, но есть ли способ сделать это с Jenkins?

Ответы [ 3 ]

9 голосов
/ 12 сентября 2011

Вот диаграмма, которую я собрал, чтобы проиллюстрировать идеи в других постах:

Two-stage source commit

8 голосов
/ 12 сентября 2011

Сделайте так, чтобы ваши разработчики вытащили из репозитория (назовем его «мастер») и подтолкнули к другому (назовем его «постановка»). (Легко с простым default-push местоположением в .hgrc)

Дженкинс вытаскивает из промежуточной и, если сборка прошла успешно, нажимает на мастера, в противном случае возвращает копию хранилища Дженкина.

Только Дженкинс должен быть в состоянии толкнуть мастера.

3 голосов
/ 11 сентября 2011

Нет опыта работы с Jenkins, но решение KISS, использующее сильные стороны Mercurial, может выглядеть так:

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