Rosario April 2008 CTP Investigation (Part 5) - Build

Continued from http://dotnet.org.za/willy/archive/2008/06/02/rosario-april-ctp-investigation-part-4-version-control.aspx.

I am hoping that my colleague Zayd will brief us on the Team Build environment and enhancements, which includes a new automated build system based on Windows Workflow Foundation (WF), dynamic build machine allocation and distributed build functionality.

Let's have a brief peek at the build environment improvements ...

Distributed Build

We select "New Build Definition" to see where the new features are hiding:

  1. Define a unique build name
    image
  2. We set the source control folder to point to the release 3 folder, ensuring that only the one branch is pulled into the workspace of the build machines.
    image
  3. Selecting the next step, Build Defaults, reveals some of the exciting new features. The build controller is responsible for managing a pool of agents.
    image
    If we select manage, we can manage the controller, defining more agents, number of concurrent builds and enable|disable the agent status.
    image image
    If we select an agent and its properties, we see the next exciting feature. "Tags" are used to match build processes to the agents. If you require a special build environment you can create a special tag, i.e. "Java Interop" and tag agents capable of building the special builds.
    image
    ... and there is more!
  4. Selecting the Process tab, we are faced with a completely new environment. I must admit that I was "gob smacked" when I first saw this dialog, because the days of tedious XML build config file fiddling seem to coming to an end.
    image 
    The next steps defines the next steps we have to do, i.e. select the solutions and/or projects to build, and the tests to run. When we select the hyperlinks, we are beamed over to the relevant property field, in this case BuildProjects and TestProjects, where we define the solutions and/or projects and the vsmdi file containing the test configuration.
    image
    We then select the "Select an Agent and Build" node, where we expand the ReservationSpec node. We can now define the tags that this build requires, i.e. x86 and .NET 3.5, for example.
    image 
    image 
    From the toolbox we can now drag activities and actions to our build template. For example, we drag a ParallelActivity just after the Update the Build Number and Drop Location activity ...
    image 
    ... which allows us to define parallel activities.
    image 
    We would typically move the "Select and Agent and Build" node to the one "Do in order" node, then copy and paste the node to the second "Do in order" node, creating parallel elements of the distributed build. One element could build a debug version of the solution, while the other builds a release version of the solution.
    ? We stumbled across an error when trying to copy a node in the build process editor. Keep an eye on our Q&A post, in which we will report on a resolution when available. (Fixed ... se Q&A Post)
    image[4]
  5. The build definition is the same ... thought I would spot a new build type ... watch the space in future CTPs.
    image
  6. The Retention Policy is also as per 2008 build definition.
    image
  7. And there is even more ... you can select "Edit Build Definition" by right-clicking the build definition and return to the same configuration environment. In the past this was the point where we had to checkout the build definition, then use tools such as the Build Sidekicks or in worst case the notepad editor to edit the XML definition file.

Queue Build

As the error in the build creation caused some headaches, we will proceed to queue and analyse another build, created using Brian's hands-on-lab notes.

The queuing of build also looks very similar ...
image 

Build Log

... as does the build log.
image 

If you are an analytical person, you would have noticed the "detailed report" link in the previous screen dump. Selecting this link opens the browser, loading a detailed build report, which displays a hierarchical view of the execution of the build, supporting the parallel activities.
image

Conclusion

Team Build has always been a scary environment for anything but the simple console application. Over time it has and is continuing to stabilise and grow in terms of features and productivity. Slowly but surely Team Build allows us to implement the automated build and testing processes and project teams should seriously consider the value of the "daily" build, the "solution pulse", indicating health and life of a solution.

My personal rating for the Team Build improvements in Rosario at this stage is:  image68159image681510image681511image681512image681513 / 5 smiles.

Next

... part 6 will look at Team Developer.

Published Monday, June 02, 2008 10:19 AM by willy
Filed under: ,

Comments

# Rosario April CTP Investigation (Part 6) - Developer

Friday, June 06, 2008 7:06 AM by Willy-Peter Schaub's Cave of Chamomile Simplicity

Continued from dotnet.org.za/.../rosario-april-ctp-investigation-part-5-build

# Rosario April 2008 CTP Investigation (Part 7) - Tester

Wednesday, June 18, 2008 7:21 PM by Willy-Peter Schaub's Cave of Chamomile Simplicity

Continued from dotnet.org.za/.../rosario-april-ctp-investigation-part-6-developer

# Rosario April 2008 CTP Investigation (Q&A) - List of questions and answers/feedback - Willy-Peter Schaub's Cave of Chamomile Simplicity

Pingback from  Rosario April 2008 CTP Investigation (Q&A) - List of questions and answers/feedback - Willy-Peter Schaub's Cave of Chamomile Simplicity

# Rosario April 2008 CTP Investigation - Conclusion

Wednesday, June 18, 2008 9:16 PM by Willy-Peter Schaub's Cave of Chamomile Simplicity

Over the past few weeks ... sorry for the delays which were caused by events and other distractions q;

# Rosario April 2008 CTP Investigation - Conclusion

Wednesday, June 18, 2008 9:20 PM by Willy-Peter Schaub's Cave of Chamomile Simplicity

Over the past few weeks ... sorry for the delays which were caused by events and other distractions q;

# Rosario April 2008 CTP Investigation - Conclusion

Wednesday, June 18, 2008 9:28 PM by Willy-Peter Schaub's Cave of Chamomile Simplicity

Over the past few weeks ... sorry for the delays which were caused by events and other distractions q;

# Parallel builds of solutions within one Team Project

Friday, June 27, 2008 3:29 AM by Grant Holliday's blog

With Visual Studio Team Build 2008 there is no way to run two builds from within the same Team Project

# Rosario April 2008 CTP Investigation (5 Parts) « Noocyte’s Weblog

Pingback from  Rosario April 2008 CTP Investigation (5 Parts) « Noocyte’s Weblog

Leave a Comment

(required) 
(required) 
(optional)
(required) 

Enter the numbers above: