Как выполнить запланированный пользовательский триггер CruiseControl.Net с механизмом повторных попыток?
Я хотел бы создать следующую стратегию сборки с CruiseControl.Net
Проверьте доставку по фиксированному графику (например, 7:00, 12:00, 16:00, 20:00).
Проверка доставки состоит из двух условий, которые должны быть выполнены перед началом сборки интеграции:
- Изменения обнаружены в коде архива
- Таможенное условие "А"
Я создал пользовательский плагин триггера, который проверяет условие 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, тогда ваш тигр его обнаружит и начнется сборка.