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

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

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

  1. Изменения обнаружены в коде архива
  2. Таможенное условие "А"

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

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

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

1 ответ

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

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

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

Другие вопросы по тегам