#continuous-integration #hudson #hudson-plugins
#непрерывная интеграция #hudson #hudson-плагины
Вопрос:
Мне удалось настроить сервер hudson, где у меня есть 3 задания: A, B и C.
- Задание A выполняется, когда что-либо проверяется в магистрали
- Задание B выполняется после успешного завершения задания A
- Задание C выполняется после успешного завершения задания B
Выполнение задания A занимает около 25-35 минут, в то время как задания B и C выполняются очень быстро (задание B около 1 минуты и задание C около 1/2 секунды).
Теперь, поскольку кто-то выполняет проверку во время выполнения задания A, это всегда прерывает процесс, и задания B и C не выполняются.
Итак, есть ли способ принудительно выполнить задания B и C после успешного завершения выполнения задания A?
Комментарии:
1. Это должно быть возможно, если вы используете плагин locks and latches: вы уже пробовали это? wiki.hudson-ci.org/display/HUDSON/Locks and Latches plugin
2. @Davek Нет, но на этой странице говорится, что реализованы только блокировки. Это все еще будет работать?
Ответ №1:
Просто перенесу это в ответ — как говорит @davek, плагин locks and latches будет работать. Вы можете сделать A, B и C частью набора блокировок, чтобы при работе B или C A помещался в очередь. Мы используем это в нашей настройке, чтобы остановить сборки, которые совместно используют ресурсы, от перекрывания друг друга.
Предостережение: В блокировках есть известная ошибка, которую, надеюсь, скоро исправят: если несколько сборок ожидают одну и ту же блокировку, они иногда запускаются при снятии блокировки, а не при задержке другой.