When: Wednesday 11th of June 2014, 17:00 to 21:30
Where: iSense office, Gouda, the Netherlands
Who: Presentation by Melvin Nijholt on Continuous Delivery with TFS 2013
Total attendees; about 40 from different companies.
Dinner at 17:00… walk in and talk…
Summary
Melvin explained the built-in TFS 2013 tool that helps with setting up a Continuous Delivery Pipeline. The tool that Microsoft now incorporated into TFS is a bought tool, previously called InRelease.
Melvin presented the slides (See this PDF: Continuous Delivery & Team Foundation Server) and took us through setting up a continuous delivery pipeline for a web application. He based a lot of his talk on the processes described in the book that he brought Continuous Delivery – Jezz Humble, David Farley he called the ‘Bible of Continuous Delivery’.
One of the practices he showed here was the difference between:
- Branch promotion
- Build promotion
If we consider what we are now usually doing, we are doing ‘branch promotion’ because we promote code from our dev-branch upto our trunk (main) and than we each week create a weekly release branch.
Build promotion works differently; a build of the existing branch (mainline) is simply promoted to a next environment. Within Release Management in TFS 2013, a reference to a build definition is set so that Release Management can find the output of that build and place it on a different environment.
The example that Melvin walked us through included:
- Setting up the build
- Using the proper Release Management build template
- Setting up the environments (dev, acceptance, user acceptance, production) with Release Management
- Make code changes, commit the code and see the auto deploy happening
- Having verification steps in the process for approvers within the Release Management tool (individuals or teams)
Next steps?
Possible steps within our company?
If we could install TFS 2013 as a spike on a system including Release Management we might setup a spike for example for one of our WEB projects to see how this stuff works! Let’s go!