login Signup

ElectricCommander continuous integration quiet time and multiple check-ins

I have a two-part question. If ElectricSentry triggers a run (run#1) and we have multiple check-ins during the quiet time, what changes are included in the next ElectricSentry poll for run#2?

If we continue to have changes after run#2, how long will it be before run#3 triggers? Will that be another quiet time delay?

avatar image By marcoman 2.2k asked Oct 16, 2012 at 12:39 PM
more ▼
(comments are locked)
10|750 characters needed characters left

1 answer: sort voted first

Whenever ELectricSentry runs a build, that build includes all changes since the last successful sentry build. So if you had two check-ins during the quiet time, both should be included in the next build.

When checking for the quiet time, Sentry asks the ECSCM driver to report the time of the most recent change that affects the defined portion of the depot. It waits for the difference between that time and now to be at least the quiet time. So, run#3 will trigger after the quiet time delay has elapsed starting from the time of the last check-in. If a check-in happens right after the run#2 starts, then run#3 may trigger immediately after run#2 finishes if run#2 took longer than the quiet time to complete. Sentry will not schedule more than one build at a time for a given configuration.

avatar image By scott stanton ♦ 2.6k answered Oct 16, 2012 at 01:05 PM
more ▼
(comments are locked)
avatar image brian handley Oct 16, 2012 at 01:24 PM

I had a customer ask about the details of how this works recently and they seemed to be observing behavior that is not what I would expect. One question is whether a checkin during the quiet time resets the quiet time? So, if I have a 10 min quiet time and I have checkins every five minutes, will the build be "held off" indefinitely? Or would a build be started 10 minutes after the first checkin (call this first checkin time "T"), and would include the changes from the checkin at T+5m (with a race condition for the checkin at T+10m)?

avatar image scott stanton ♦ Oct 16, 2012 at 01:30 PM

It's a 'quiet' time, so it waits for N minutes with no checkins. The rationale is that you want a period of inactivity to insure that you get a consistent set of deltas. It's common for a developer to miss a file on the check-in and immediately follow up with a second check-in. The quiet time tries to handle that by leaving a small window for the developer to finish the commit.

If you have a very active branch with no quiet times, then you should probably disable the feature or set the value low enough that it is smaller than the mean time between check-ins.

10|750 characters needed characters left
Your answer
toggle preview:

Up to 8 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.