Наша команда использует jenkins и git. Мы планируем реализовать расширенную функцию плагина git, которая позволяет выполнять предварительные сборки перед отправкой коммитов в благословенный репозиторий. См. https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-AdvancedFeatures
Однако у меня возникли проблемы с пониманием всего процесса.
Вот отрывок:
Настройте проект Jenkins и оставьте поле «ветвь» в Git SCM пустым. Это заставит Jenkins рассматривать любые изменения в любой ветке для сборки.
Затем выберите конкретное имя ветки в качестве цели интеграции в разделе «Advanced» (например, «master» или «stable») и выберите « Объединить перед сборкой ».
Выберите« Отправить теги GIT обратно в исходный репозиторий »из действий после сборки (это необходимо для обновления централизованного репозитория git с учетом результатов сборки).
Теперь разработчики никогда не должны выполнить фиксацию непосредственно в своей ветке интеграции («основной» или «стабильный»). Вместо этого они должны либо использовать функциональные ветки, либо создавать новые удаленные ветки при фиксации (например: «git push origin HEAD: refs / heads / myNewFeature»). Вы также можете настроить свой репозиторий GIT так, чтобы он принимал только коммиты в ветку интеграции от Jenkins.
Готово. Коммиты теперь должны автоматически объединяться с ветвью интеграции (они не будут работать, если они не объединятся чисто) и построены. Если сборка завершится успешно, результат слияния будет отправлен обратно в удаленный репозиторий git.
Насколько я понимаю,
Вопрос в том, каково состояние ветви интеграции в случае сбоя сборки? Я бы только предположил, что он каким-то образом возвращается к фиксации перед слиянием. Если нет, то интеграционная ветвь сохранит слияние, которое нарушило сборку, сделав невозможным слияние и сборку других ветвей.
Так ли это? К сожалению, это не ясно из вики.
Кроме того, знает ли кто-нибудь пример, который я могу посмотреть?