Naeem Sarfraz

Blogging about Enterprise Architecture, ALM, DevOps & happy times coding in .Net

Understanding TFS & Release Management Integration

We’re in a little bit of transition phase for these two products as the integration gets tighter and tighter. The story began with the acquisition of Release Management from InCycle in 2013 and will soon become one product with little trace of the WPF client app which is used to configure and manage deployment workflows.

TFS build has the continuous integration story covered. Now you want to deploy your application you need to switch over to Release Management and trigger a release. Triggering a release was a manual action in earlier versions of the product but it can now be triggered automatically opening up continuous deployment strategies to you.

The information below outlines a series of how-to articles I’ll be posting in the next month of stuff I’ve learnt whilst integrating the two products. Not everyone has the luxury of upgrading to the latest versions of Visual Studio or TFS so I’m hoping this will be useful for someone looking for a consolidated source on this stuff.

Using a subset of the complete options Jakob Ehn wrote about in his post Triggering Releases in Visual Studio Release Management I’m focusing on the on-premise options available to you.

#

Source

Release Management

Deployment Type

Options

Post (links will added as I publish posts)
1 TFS 2013 Build RM 2013 Update 2 Agent-Based ReleaseManagementBuild.exe
ReleaseBuildTemplate for Xaml build
Trigger an Agent Release from TFS 2013 Build
2 TFS 2013 Build RM 2013 Update 2 Agent-Based ReleaseManagementBuild.exe
Post build PowerShell script for Xaml build
Trigger an Agent Release from TFS 2013 Build
3 TFS 2013 Build RM 2013 Update 3 vNext Rest API
Post build PowerShell script for Xaml build
Trigger a vNext Release from TFS 2013 Build
4 TFS 2015 Build RM 2013 Update 2 Agent-Based ReleaseManagementBuild.exe
PowerShell task
Trigger an Agent Release from TFS 2015 Build
5 TFS 2015 Build RM 2013 Update 3 vNext Rest API
PowerShell task
Trigger a vNext Release from TFS 2015 Build

 

Terms

Some of the terminology can be confusing so here is an explanation of the top level functions in Release Management.

  • Agent Release – Deployment template using pre-defined functional building blocks and using Windows Workflow to manage the workflow. Requires a deployment agent to be installed on the target server.
  • vNext Release – Deployment template using PowerShell and using Windows Workflow to manage the workflow. Does not require a deployment agent however will require an account with local admin permissions on the target server.
    • PowerShell – Scripts that will have been authored by yourself for deploying components such as a xcopy job, web deploy or dacpac package.
    • PowerShell DSC – Scripts utilising Desired State Configuration.

The future – PowerShell all the things!

The Release Management Service, now available in public preview in Visual Studio Team Services, will replace the current WPF client app and related architecture. RMS has been basically re-built and works in a similar way to the new build system in TFS 2015. A summary of the new features can be found here and this is what it looks like.

This means Agent based deployments will be a thing of the past as the way forward is paved with PowerShell scripts. If you’re currently using Agent based deployments then the best thing you can do is to start using vNext templates and paths to start deploying using PowerShell. These PowerShell scripts can then be re-used in Release Management Service when it becomes available to on-premise. Interestingly there is a tool, created by the ALM Rangers, which will attempt to migrate your Agent based deployment artifacts and over to vNext templates.

blog comments powered by Disqus