Team Foundation Build Overview
Team Foundation Build provides the functionality of a public build lab and is part of Team Foundation. With Team Foundation Build, enterprise build managers can synchronize the sources, compile the application, run associated unit tests, perform code analysis, release builds on a file server, and publish build reports. Build result data are propagated to the warehouse for historical reporting. Team Foundation Build works with other Visual Studio Team System tools during the build process, including version control, work item tracking, and with test tools. For more information, see Team Foundation Version Control.
Team Foundation Build:
Build Definition Provides an interface that lets the user define the build steps and build parameters needed for the user's builds. The builds can be defined to be on-demand, rolling, or continuous integration where each check-in causes a build to be queued according to its priority.
Build Queue Provides a queue for the requested builds. Each build has an associated priority and the builds are built in accordance to the priority and the date/time position in the queue.
Build Execution Leverages the build definition to build the product and generate build outputs. It runs all build steps, including the execution of test code; it updates work items; and it calculates the build metrics.
Build Report Provides a view into the execution of the build. The report lists the overall build status including detailed build steps; work items resolved, code changes, and summary of test execution. The build reports are viewable from Build Explorer. For more information, see Understanding the Team Foundation Build Explorer and Working with Team Foundation Build Reports.
Team Foundation Build also provides the capability for public and private or desktop builds.
To get started with Team Foundation Build, see Walkthrough: Creating a Build Definition in Team Foundation Build.
Team Foundation Build is designed for use with Team Foundation in a distributed manner as shown in the illustration in the following table. Team Foundation Build includes the following components:
Team System Team Build Component
Team Foundation Build Definition Creation and Build Reports
You can view build reports and build progress information in Team Explorer using the Build Explorer. For more information, see Understanding the Team Foundation Build Explorer.
Use the Build Definition dialog box to create New build definitions. For more information, see How to: Create a Build Definition.
Team Foundation application tier
The Team Foundation version control server that stores all the source code.
Team Foundation Build Web Service
Team Foundation application tier
The Web service running on the application tier that accepts requests from the client and coordinates the execution of build steps.
Separate build computer
The service running on the build agent or agents that runs the build steps on instructions from the Team Build Web service.
Team Foundation Build Store
Team Foundation data tier
SQL database store used to hold records affiliated with Team Foundation Build build processes.
Team Foundation Build interacts seamlessly with Team Explorer. Team Foundation Build associates build definitions as part of team projects, and the build definitions are listed in Team Explorer in the Builds folder. You can use Team Explorer to invoke operations such as queuing a build and creating new build definitions. Under the Builds node for each team project are various build definitions defined in the team project.
The following are the possible deployment topologies that can be used with Team Foundation Build:
Server, data tier, and build agent on a single system.
Server and data tier on one system and the build agent on another.
Server on one computer, data tier on a second computer, and the build agent on a third computer.
Server and data tier on one computer, build agent on a second computer, and a third build computer specifically designated for sensitive projects.
Server and data tier on one computer, build agent on a second computer, and third build agent for rolling or continuous integration builds.
Server and data tier on one computer, build agent on client.
Server and data tier on one computer, farm of build agents.
Server and data tier on one computer, build agent on a second computer, and a load or remote test computer.
Do not use the Team Foundation Server service account to run the Visual Studio Team Foundation Build service account.
Build agent can be installed on any computer that has access to the Team Foundation Server application tier. The build process can be customized to run any user-supplied code that will be run with greater permissions on the build agent. Therefore, user code can perform certain actions that may not be able to run on their development computer. Similarly, certain deployment steps that are part of the build may require administrative permissions. Therefore, if the Visual Studio Team Foundation Build service account is part of the local administrators group on the build computer, running any user code will have administrative permissions. If Team Foundation Build is installed on the application tier, the user could be a security risk. Similarly, on the data tier, local administrators can change the database and potentially perform insecure actions.
Consider the following points when configuring your topology with Team Foundation Build:
Security risks are introduced by installing Team Foundation Build on either the application tier or the data tier.
Running user code from an untrustworthy source could compromise the information on the computer.