Automated nightly build – to schedule or not to schedule Team Build

Last week when I was checking out a scheduled build feature of some other product, I remembered that this was a post that I had written earlier but I hadn’t posted yet…

Users of Team Build have asked about how to schedule a build at regular intervals automatically using Team Build. The answer was not as pretty as I would have liked to give…you have to use the NT scheduler and plug in the command line build to kick off builds at scheduled intervals.

Let’s whizz back a bit to the planning stage of Team Build. Of course, we did originally think of having a build scheduler out of the box, but we had to cut it down due to various reasons including cost, relative priority of the feature and other related stuff. At that time, I personally thought this was a very strange decision, since for me scheduling builds looked like a basic feature for the product. But I must confess, the number of qs that were asked about the lack of this feature was actually much lesser than what I expected would be asked if it were as popular a feature as I imagined. Also, it did not quite generate any rants on the forums about absence of functionality either 🙂

Now, is the build scheduler a feature that a builder would really want? From one of the reasonings that we discussed in the team: Just giving a bland UI cover for the scheduler may not appeal to builders at all. Typically, builders prefer scripts and command line operations over UI (which is even referred to as an impediment 🙂 So, our current option of having to use the NT scheduler to call the command line build seems to be a decent one instead of the UI. In fact, the command line lends itself very well to scripting. Also, just having a scheduler UI may not be that great a feature for the builder; we need to probably give a supplemental system to manage and queue builds in case of conflicts etc. Khushboo has a related post where she discusses this feature in depth.

Ummm…yes, this does sound fair, albeit I tend to be a bit ambivalent about this. VSTS’ unique offering is the power of integration. So, if you had a dialog box that would pop up within VS and you could use it to schedule regular builds, then I would term it useful. After all, the freedom of performing all operations from within VS without ever having to leave the app is one of the most compelling features of Team System. Now, in the same breath I also say that there are more desirable features that could be added to the product – stuff like increasing scalability to make it suitable for bigger teams, continuous integration out of the box etc. But somehow, the build scheduler still seems to appeal to me as a feature that would probably make Team Build feel a bit more complete.

I wonder what the builders out there think…

Comments (6)

  1. I don’t want to crib but this is a perfect example for my post

    In case you are looking for a batch file to configure a schedules build, then check out

    You can use the batch file in this post to schedule builds using something like

    schbuild MyTFSServer MyTeamProject MyBuildType DAILY 12:00:00 12/22/2005

    We also have a standalone UI as a wrapper over the scheduler. I have not yet published it. The reason is that I’m not convinced about giving it out is because it configures the scheduler on the client. Clients by nature are volatile machines, scheduler for a scheduled build needs to run on the TF Server.

  2. Mitch Denny says:

    Hi Abhinaba,

    I think there are three missing features in Teatm Build about of the box.

    1. Scheduled builds.

    2. Event-based builds.

    3. Build artifact check-in (for inter and intra project dependencies).

    All of which can be solved using the SDK, but it would be a nice to have at some point in time. It would also be nice to have a tool to manage the MSBuild scripts so that third-parties could build add-in packages which people could import and configure into their scripts with the click of a mouse.

  3. Ivan Stretsm says:

    You are wrong Abhinaba. Team Build sucks without a scheduled build feature. None of the build systems in the market would even dream of releasing without a scheduled build feature. In this case it is not the customer who rules but the guys that made this utterly stupid decision to cut this feature. The solution is worse than the problem – how is the batch file any better than the NT scheduler option?

    And Anutthara – you would obviously need to write build management and queuing into the system, but in V1 users could have done without it and just an integrated UI.

  4. Dave says:

    I have to say I am amazed this shipped without the scheduled build feature.

  5. Steve St Jean says:

    I too am at a loss as to why there is no "good" scheduling mechanism.  We have to jump through hoops to implement Continuous integration in this system.  As was previously stated, there should be time-based and event-based initiation of the build.  If you give me that, I will be happy.

  6. Ira says:

    Any progress or alternative solutions on this by anyone?