Manual This is in fact not a trigger. It tells TFS not to do anything until the
QR Code ISO/IEC18004 Creation In C#
Using Barcode generator for .NET framework Control to generate, create Quick Response Code image in VS .NET applications.www.OnBarcode.com
Recognizing Denso QR Bar Code In Visual C#.NET
Using Barcode decoder for VS .NET Control to read, scan read, scan image in VS .NET applications.www.OnBarcode.com
build is submitted manually to the queue.
EAN / UCC - 14 Generator In Visual C#.NET
Using Barcode creator for Visual Studio .NET Control to generate, create GS1-128 image in VS .NET applications.www.OnBarcode.com
Paint Data Matrix In Visual C#.NET
Using Barcode printer for VS .NET Control to generate, create Data Matrix ECC200 image in Visual Studio .NET applications.www.OnBarcode.com
Continuous integration This trigger follows the CI principle strictly to build
UCC - 12 Creator In Visual C#.NET
Using Barcode generator for Visual Studio .NET Control to generate, create UPC-A image in .NET applications.www.OnBarcode.com
USS Code 128 Drawer In Visual C#
Using Barcode maker for .NET framework Control to generate, create ANSI/AIM Code 128 image in .NET framework applications.www.OnBarcode.com
after every check-in.
2D Barcode Printer In C#
Using Barcode generator for .NET Control to generate, create Matrix image in .NET framework applications.www.OnBarcode.com
Bookland EAN Creator In C#
Using Barcode creator for .NET framework Control to generate, create Bookland EAN image in .NET applications.www.OnBarcode.com
Rolling build Rolling builds are suitable if your build is taking longer than the
Encode QR Code In None
Using Barcode generator for Excel Control to generate, create QR-Code image in Excel applications.www.OnBarcode.com
Quick Response Code Drawer In Objective-C
Using Barcode encoder for iPad Control to generate, create Denso QR Bar Code image in iPad applications.www.OnBarcode.com
average check-in rate. In other words, if the developers on your team check in more quickly than the build process, you should choose this type of trigger. It accumulates the check-ins and triggers the build after the currently running build finishes. You can also set a rough equivalent of a quiet period, as you saw earlier when working with TeamCity. You can prevent the build from executing for a given amount of time, during which check-ins are accumulated. It isn t the same, but it can do the trick.
Decoding Barcode In Java
Using Barcode decoder for Java Control to read, scan read, scan image in Java applications.www.OnBarcode.com
Make GTIN - 128 In VB.NET
Using Barcode printer for .NET Control to generate, create GTIN - 128 image in .NET framework applications.www.OnBarcode.com
Figure 4.31 Adding a new build definition to a Team project in Visual Studio 2010 Team Explorer
Recognize Barcode In .NET
Using Barcode recognizer for .NET Control to read, scan read, scan image in VS .NET applications.www.OnBarcode.com
UPC - 13 Generator In Visual Studio .NET
Using Barcode printer for Reporting Service Control to generate, create EAN / UCC - 13 image in Reporting Service applications.www.OnBarcode.com
Continuous integration with Team Foundation Server 2010
Code 128C Generation In Java
Using Barcode creator for Java Control to generate, create ANSI/AIM Code 128 image in Java applications.www.OnBarcode.com
Painting EAN 13 In None
Using Barcode creation for Online Control to generate, create GTIN - 13 image in Online applications.www.OnBarcode.com
Figure 4.32 Visual Studio 2010 guides you through the creation of a build definition. Assign a name using a convention of some sort that will help you manage a large number of build definitions if you plan to have them. Also choose a trigger type.
Making UPC-A Supplement 2 In Objective-C
Using Barcode encoder for iPad Control to generate, create UPC-A image in iPad applications.www.OnBarcode.com
QR Code ISO/IEC18004 Reader In VB.NET
Using Barcode reader for VS .NET Control to read, scan read, scan image in .NET applications.www.OnBarcode.com
Gated check-in A gated check-in build is a mechanism that prevents bad code
Encoding Code 3 Of 9 In None
Using Barcode maker for Software Control to generate, create Code 39 Full ASCII image in Software applications.www.OnBarcode.com
Make Barcode In None
Using Barcode drawer for Microsoft Excel Control to generate, create Barcode image in Excel applications.www.OnBarcode.com
from getting into the source code repository. It compiles the code and runs unit tests before check-in. Everything must pass, or the check-in isn t allowed. The gated check-in is similar to the TeamCity pre-tested commit.
Schedule The scheduled trigger lets you organize your builds; for example, you
can do a nightly or weekly build.
In this case, choose a strict CI build. On the Workspace tab, you can define the working folder that the build agent will use and the source control folders it will pull from. Use the defaults unless you have a more complicated source control layout. On the Build Defaults tab, you choose the Build Controller to be used for this build and the output drop folder where the build agent will copy the build result and the log file. This must be a network share, and you must have enough rights to use it. A little explanation is needed for the Process tab shown in figure 4.33. The build definition in TFS 2010 is created using XAML and Windows Workflow Foundation. We won t dive into the details in this book; in this case, you ll use the default build template. But if you want to make extensive use of TFS 2010, this is a good opportunity to learn about XAML and Windows Workflow.
Choosing the right CI server
Figure 4.33 When you define a build in TFS, you can use XAML templates. For an ordinary CI process, you can use the default template; but if you want to customize this and that, it s time to get some Workflow Foundation information (you can start at http://msdn.microsoft.com/en-us/vstudio/ aa718795.aspx).
If you stick with the default template, you have to choose the item to be built from the source control repository. It can be a solution file if you wish, or it can be an MSBuild script. Choose Items to Build from the build process parameters (with a small yellow exclamation mark), and click Add on the Solutions/Projects tab. Navigate to the WindowsCalculator.sln file, and choose it. It will be used for the CI build. The last tab controls the build retention. You define how long build information should be kept for a given build s output. From now on, your CI build definition runs on the TFS server. Every time you check in something, the build will trigger. To watch the build queue, double-click the build definition in Team Explorer to open the Build Explorer, and choose the Queued tab (see figure 4.34). You ve now defined a CI build process, and it s running on TFS. The build process runs on a build agent and everything is ready for the developers to start work. It s time to move to the next step, defining feedback mechanisms, which we ll look at in chapter 5.
Sum m ary
You can watch the build queue in Build Explorer. The first build is waiting in the queue.
Sum m ary
In this chapter, we ve talked about using CruiseControl.NET, TeamCity, and TFS 2010 as your CI server. There are others to choose from that we haven t discussed. The market is now in such a state that there s no single obvious tool to use. Some of them are great for small teams and others for enterprise-level development. Some are free; others you must pay for. Some are easy to use, and others put an angle-bracket tax on you. Some are packed with features that solve problems you re not even aware of. We ll go with a mix of CCNet, TeamCity, and TFS 2010 in the book. We think they re a good ground to lay a foundation under your CI process. CCNet is feature poor, but it s completely open source so you can easily poke around to extend it or to see what s going on inside. It s a good choice for a small team if you like to check things for yourself. TeamCity is free for smaller teams, and it keeps up with the features offered by the Microsoft flagship, TFS. We know we re throwing a lot of options at you to consider, but you must remember a few important things when considering these CI options. Your CI server shouldn t be a build server. It should provide feedback. It should build quickly and should efficiently give you information whenever the code quality is degrading, there s a problem with your codebase, or your tests are failing. In the next chapter, we ll discuss feedback mechanisms.