One more logic error: In Fire(), if the time is past the NextBuild
time, the next integration time has to be advanced even if the
subprojects did not change:

DateTime now = dtProvider.Now;
if (now > NextBuild && IsValidWeekDay(now.DayOfWeek))
{
  if (SubProjectsAreChanged())
  {
    triggered = true;
    return new IntegrationRequest(BuildCondition, Name, null);
  }

  // Note: Called in IntegrationComplete() if we triggered a build
above.
  SetNextIntegrationDateTime();
}

Reply via email to