Build activities… you just can’t get enough! Team Foundation Build 11 Beta comes with 69 workflow activities, which represents no less than 28 new ones compared to the 2010 version. From these, 14 of them are intended for use in build customizations, almost fully documented, and ready to be used.
All these activities are nicely explained in the available documentation at MSDN, but I’m going to make a brief summary, mostly for helping myself to remember them .
GetCommonLocalPath and GetCommonServerPath
Given a collection or either local or server paths, these activities will return the lowest-level common parent folder of all of them.
IsNotNull<T> and IsNull<T>
Test if a Visual Basic expression is either not null or null.
Queries the version control server and returns a list of shelvesets which met the given criteria. The criteria can be defined using the shelveset name and the owner.
This is maybe one of the most interesting activities among the new ones. It allows us to run tests using the new Visual Studio Test Runner, which in turn lets us to use unit testing frameworks other than (but including) MSTest, such as NUnit or xUnit. This activity is used by the DefaultTemplate.11.1.xaml itself to run the tests if we specify the Visual Studio Test Runner, under the Test Source dialog, in the Process tab of the build definition window.
Here we can see the place where we can choose the Test runner, which is Visual Studio Test Runner by default:
And here is the place where the RunTests activity is used inside the DefaultTemplate.11.1.xaml build process template:
TfGet, TfResolve, TfShelve, TfUnshelve, TfUndo, and TfWorkfold
These activities are wrappers to the corresponding tf.exe commands, giving us more useful ways to interact with the version control server from the build process.
Writes a test error message in the build log, which appears also in the build results window:
Writes a message into the build summary. This message can include hyperlinks, and you can specify the section inside the build summary where the message will appear. The result looks like this: