0

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:

  1. Changes are detected in the code archive
  2. 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?

Rob van Groenewoud
  • 1,824
  • 1
  • 13
  • 17

1 Answers1

0

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.

Benjamin Baumann
  • 4,035
  • 2
  • 25
  • 35