I really, really want to use TFS for Continuous Integration, but the more I get into it (it meaning TFS) the more I realize that TFS isn't going to cut it for CI, at least not for our purposes. It's apparent that the TeamBuild portion of TFS was almost an afterthought, which is a shame because it's such an obvious thing to have as part of the overall TFS solution. At least it's
actively being worked on, so I expect full CI functionality in the Orcas release.
Even though we won't be using TFS for CI on this project, that doesn't mean you can't do CI in TFS at all. There are plenty of examples and work out there that explain how to set up TFS for CI, and there are already some tools on the market (i.e.
TeamCI,
Automaton) that are starting to address the issue, but so far they all fall short.
Here are the main reasons why we won't be using TFS for CI:
- TFS cannot perform multiple builds at the same time
- This is the biggest issue for us. With a few different builds setup to run all day long, not being able to perform multiple builds at the same time is a killer.
- TFS builds are very, very slow, especially when compared to CC.NET
- This is a bit surprising because both TFS and CC.NET are configured to use MSBuild, yet the TFS builds are consistently taking 10 times as long. Both are running on the same machine, running the same tests and code coverage, and performing the same static code analysis. Why the huge gap?
- TFS doesn't show code coverage for classes within assemblies; just the assemblies themselves
- Showing the overall code coverage for an assembly is good, but I need to drill down into it. For instance, if an assembly has 20 classes, I want to know which ones are below 90% coverage. There's no reason I shouldn't be able to see that in a report. I *can* do this with CC.NET, but that's another post soon to come.
It'll be nice once the TeamBuild part of TFS matures, but for now, we're going to be using TFS as the data and reporting store and will use CC.NET to drive all of our builds.
Print | posted on Monday, December 11, 2006 9:44 AM