Принудительное выполнение одной сборки для одной фиксации в Jenkins / Hudson

Мы используем Jenkins для выполнения инкрементных сборок нашего проекта при каждой фиксации в SCM. Мы хотели бы получать отдельные сборки для каждой отдельной фиксации. Однако наивный подход (настройка SCM и использование обработчиков после фиксации для запуска сборки) вызывает проблему в следующем сценарии:

  • Запускается сборка.
  • Во время сборки (это может занять несколько минут) два отдельные коммиты в SCM выполняются двумя разработчиками.
  • Запускается одна новая сборка. Она получает изменения от обоих коммитов, сделанных во время предыдущей сборки.

Это «состояние гонки» усложняет поиск какой из коммитов нарушил сборку / введенные предупреждения.

Используемое в настоящее время решение проверяет наличие изменений в одном задании («задание планировщика») и запускает другое задание для выполнения фактической проверки и сборки.

Есть ли там какие-нибудь подходящие решения этой проблемы?

25
задан Oleg 11 July 2011 в 21:44
поделиться