Как настроить задания hudson таким образом, чтобы нижестоящие задания выполнялись всегда?

#continuous-integration #hudson #hudson-plugins

#непрерывная интеграция #hudson #hudson-плагины

Вопрос:

Мне удалось настроить сервер hudson, где у меня есть 3 задания: A, B и C.

  1. Задание A выполняется, когда что-либо проверяется в магистрали
  2. Задание B выполняется после успешного завершения задания A
  3. Задание 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 помещался в очередь. Мы используем это в нашей настройке, чтобы остановить сборки, которые совместно используют ресурсы, от перекрывания друг друга.

Предостережение: В блокировках есть известная ошибка, которую, надеюсь, скоро исправят: если несколько сборок ожидают одну и ту же блокировку, они иногда запускаются при снятии блокировки, а не при задержке другой.