Extending the team build web-view

<Update: Fixed so that you no longer need to copy the Microsoft.TeamFoundation.Build.Common.dll. Thanks to a Watson bug we got to this >

We had a web-UI for Build Report but we do not have one for Build List. Sometime back we had customer queries on adding/removing columns as well as printing the list, both of which we do not support out of the box.

Team System is very extensible with a lot of functionality exposed through web-methods and client-side object-models. I cooked up a web UI which you can use to see the list of builds, optionally filtered by the Build Type in you favourite borwser. The web-ui consists of an aspx page and an xsl file to format the generated xml. All the data that is available for a build is exposed in the XML generated by the aspx code and you can customize the xsl to show the nodes as you like. .

Deploying

  1. Download the zip from here
  2. Unzip the sources into Team Foundation Server folder as in %Program Files%\Microsoft Team Foundation 2005\Web Services\Build\v1.0.
  3. Add people whom you want to be able to see the list in the Reader group for the team project.
  4. To access the list use the URL http://<TFSServer>:<Port>/Build/v1.0/BuildList.aspx?TeamProject=ProjectName. Replace the part marked in red with your TFS and project name
  5. To see the list of only a particular Build Type use something like http://<TFSServer>:<Port>/Build/v1.0/BuildList.aspx?TeamProject=ProjectName &BuildType=Bt

Screen Shot

Build list as seen in IE filtered on the Build Type Bt2

Build list screen shot

Customizing

You can further customize the list like adding filters. You can accept some filter as in http://<TFSServer>:<Port>/Build/v1.0/BuildList.aspx?TeamProject=ProjectName&BuildType=Bt &Filter=LastWeek and then inside the foreach (BuildData buildData in listOfBuilds) skip all builds that have FinishTime more than a week older

You can customize the list by changing the xsl file as well.

Support

This should work with both Beta 3 and the latest CTP bits. In case you failed to get this to work, drop me a message either in comments or in the contact page.