Friday, November 11, 2005

MS Team Build

I am not certain of all the reasons, but TeamBuild utilizes a completely new way to automate builds. Sure, this sort of thing exists as NAnt; probably more accurately as Cruise Control, but I am sure MS had their reasons for redoing it.

I am a bit disappointed in both the build and unit test frameworks because I already have continuous integration scripts in Nunit, Nant, and CCNet. Now, I have to do it all over again. I think the primary reason for the reinvention was to be able to track the builds as part of the reporting data.

Even redoing things in TeamBuild, I find that it is a little odd. We'll grant that its beta material.
  • The build automation seems to revolve around a web service call, and making your own executable. Everything I found on the net was for beta2. The documentation for beta 3 suggests using tbuild in some parts of the docs, or teambuild in others. I could not locate either of these executables anywhere. This is pretty lame. I can schedule CCNet, what's up with TeamBuild? I built my own beta 3 executable. [EDIT: With the last release and updated docs on the web- I finally found that the executable is msbuild.exe. It is located in your framework directory. I am still a bit frustrated with team build, but its getting better as docs improve understanding. The build blog is a great resource as well.]
  • Build results page is a mishmash of data, and most of the information is actually in links to text dump files of the build process. Again, the cruise control implementation of a website with results is far more usable.
  • The distribution of websites to the drop location doesn't seem real useful. You get the bin directory with compiled helper libraries. hmmm. I guess i'll have to get into that more to understand the purpose.

For me the bottom line is that out of the box, this feature seems to add very little (nothing?) to what was available from community software previously. It also seems so far to be weak. I'll continue working with it - maybe i'll be converted.

Submit this story to DotNetKicks

No comments: