TFS2012 Team Build Types
In this article, I will go through the build types (triggers) the TFS Team Build supports out of the box.
What is TFS Team Build
Team build is a TFS service that is responsible for building, or compiling, your code. You can ,however, change the behavior of the process by modifying the Build Definition and the Build Process template. The Team Build Service should, ideally, be placed on a machine that is different from the TFS Server. Team Build is a resource intensive operation and placing it on the same machine as your TFS Server will degrade performance. In TFS, you can run as many builds as the number of build agents you have installed.
Build Types in TFS
Team Foundation Server 2012 supports the following build types:
Manual: The Team Build is triggered manually from Visual Studio, TFS API or tfsBuild command.
Continuous Integration (CI): Team Build is triggered whenever a new code checkin occurs. You want to use this type of build to verify the a code checkin from a developer is not breaking the build. You may want to run unit tests part of the CI to verify that the new code is not breaking any of the tested business roles.
Rolling Build: Rolling build is similar to CI build. It queues a build for every check in. However, it allows you to limit your build to one at a time and accumulate the checkins until the previous build is complete. Once the previous build is complete, the team build queues a new build request which includes all the checkins occurred while the previous build was running. You can also limit the number of builds TFS can queue within a certain period of time.
Gated Check in:Gated check in similar to the CI build. It is gets triggered on code check-ins. The code however gets shelved and only is committed to source control if the build passes otherwise that check-in is rejected. Team build run one Gated Build at a time. When you have an active team that checks in many files it may take a long time for the code to be built and committed to source control. In TFS 2012, you can define the Gated Check in build definition to merge x number of submissions together. That feature improves the efficiency of TFS Team Build. If the consolidated build fails, Team build will build each submission individually and commit the changesets that succeed and reject the failed ones.
Scheduled: is a build that runs at a specific day of week and time. You may want to run a schedule this build off hours to run the tests that take long time on your code, e.g. integration, regression and/or coded UI tests. The scheduled build can run once a day. You can choose which days of week you want the scheduled build to run.