Howto accomplish a scheduled custom CruiseControl.Net trigger with retry mechanism?
I'd like to create the following build strategy with CruiseControl.Net
Check for deliveries at fixed schedule (e.g. 7:00h, 12:00h, 16:00h, 20:00h).
The check for delivery consists of two conditions that must be met before starting an integration build:- Changes are detected in the code archive
- Custom condition "A"
I have created a custom trigger plugin which checks for condition A and can be expanded with an inner trigger, in this case a multiTrigger of scheduledTriggers, which seems to work fine.
Now consider the scenario in which there are archive changes detected during the 7:00h check, but custom condition A has not been met (yet). If condition A is met just after the check it would mean开发者_如何学编程 that the changes would not be picked up until the 12:00h check, which is obviously not desired.
Is there any way to implement a kind of retry mechanism within the current CCNet config, so that if changes are detected but condition A is not met yet, CCNet will keep trying until the condition is met and then start the integration build after all?
Why don't you expand your check for condition A more often than the delivery checks with a conf like this :
multitrigger AND
scheduletrigger in code archive : 7h 12h 16h 20h
YourTrigger (say checked every 5 min)
If the schedule trigger detects modifications at 7h but condition is not met A then the state of the schedule trigger is set to "fired" but the build does not fire. if the condition A is met at 7h25 then your tigger will detect it and the build will begin.
精彩评论