Как выполнить запланированный пользовательский триггер CruiseControl.Net с механизмом повторных попыток? - PullRequest
0 голосов
/ 30 марта 2011

Я бы хотел создать следующую стратегию сборки с CruiseControl.Net

Проверка доставки по фиксированному графику (например, 7: 00, 12: 00, 16: 00, 20: 00).
Проверка доставки состоит из двух условий, которые должны быть выполнены перед началом сборки интеграции:

  1. В архиве кода обнаружены изменения
  2. Пользовательское условие "A"

Я создал собственный плагин триггера, который проверяет условие A и может быть расширен внутренним триггером, в данном случае multiTrigger of scheduleTriggers, который, кажется, работает нормально.

Теперь рассмотрим сценарийв котором есть изменения архива, обнаруженные во время проверки 7:00, но пользовательское условие A не было выполнено (пока).Если условие A выполнено сразу после проверки, это будет означать, что изменения не будут получены до проверки 12:00, что явно нежелательно.

Есть ли способ реализовать какой-либо механизм повторных попытокв текущей конфигурации CCNet, так что если изменения обнаружены, но условие А еще не выполнено, CCNet будет продолжать попытки до тех пор, пока условие не будет выполнено, а затем все-таки начнет сборку интеграции?

1 Ответ

0 голосов
/ 30 марта 2011

Почему бы вам не расширить свой чек на условие A чаще, чем чеки на доставку с conf вроде этого:

multitrigger AND
  scheduletrigger in code archive : 7h 12h 16h 20h
  YourTrigger (say checked every 5 min)

Если триггер расписания обнаруживает изменения в 7h, но условие не выполняется A, тогдасостояние триггера расписания установлено на «запущено», но сборка не запускается.если условие А выполнено в 7:25, тогда ваш тигр его обнаружит и начнется сборка.

...