{"id":10512,"date":"2015-11-18T08:00:00","date_gmt":"2015-11-18T08:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudioalm\/2015\/11\/18\/announcing-the-new-release-management-service-in-visual-studio-team-services\/"},"modified":"2019-02-14T17:36:36","modified_gmt":"2019-02-15T01:36:36","slug":"announcing-the-new-release-management-service-in-visual-studio-team-services","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/announcing-the-new-release-management-service-in-visual-studio-team-services\/","title":{"rendered":"Announcing the new Release Management service in Visual Studio Team Services"},"content":{"rendered":"<p>Today at <a href=\"http:\/\/connect2015.visualstudio.com\/\">Connect()<\/a>, we announced the public preview of the new <a href=\"https:\/\/www.visualstudio.com\/features\/release-management-vs\">Release Management service in VSTS<\/a>. This service helps you automate deployment of your application software to multiple environments all the way to production. You can deploy applications to your on-premises servers or to Azure and other cloud platforms. Using Release Management, you can easily setup, visualize, and track the progress of your deployments. You can answer questions such as &#8216;what&#8217;s new in each release?&#8217; or &#8216;what is the latest release deployed in a particular environment?&#8217;<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/00\/00\/00\/45\/92\/7288.RM-02.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2015\/11\/7288.RM-02.png\" alt=\"\" \/><\/a><\/p>\n<p>Here&#8217;s a quick walkthrough that will get you started with Release Management. This example shows you how to deploy a simple ASP.Net 4.5 website to Azure. You can use Release Management to deploy all of your (.net, Java, PHP, Node, &#8230;) apps to cloud or on-premises targets. For more details, refer to the documentation at <a href=\"https:\/\/aka.ms\/rmpreview\">https:\/\/aka.ms\/rmpreview<\/a>.<\/p>\n<h2>1. Code&nbsp;<\/h2>\n<p>1.1. Create a new&nbsp;ASP.Net 4.5 MVC project in Visual Studio (or choose one that you already have).<\/p>\n<p>1.2. Check-in the project into your VS Team Services Git or TFVC repository.<\/p>\n<h2>2. Build<\/h2>\n<p>2.1. Connect to your team project in VS Team Services: <code><a href=\"https:\/\/{your_account}.visualstudio.com\/DefaultCollection\/{your_team_project\">https:\/\/{your_account}.visualstudio.com\/DefaultCollection\/{your_team_project<\/a>}<\/code><\/p>\n<p>2.2. In the&nbsp;<strong>BUILD<\/strong> hub, create a new build definition.<\/p>\n<p>The following sample build definition uses a <strong>Visual Studio Build<\/strong> task to produce a zipped web package. It executes MSBuild step with the arguments:<\/p>\n<p><code>\/p:DeployOnBuild=true \/p:WebPublishMethod=Package \/p:PackageAsSingleFile=true \/p:SkipInvalidConfigurations=true<\/code><\/p>\n<p><img decoding=\"async\" src=\"\" alt=\"Creating a build definition in Visual Studio Online\" \/><\/p>\n<p>The build definition also contains a <strong>Publish Build Artifacts<\/strong> task to create the artifact that Release Management can deploy.<\/p>\n<p><img decoding=\"async\" src=\"\" alt=\"Publishing build artifacts in a build definition\" \/><\/p>\n<p>2.3. Queue a new build and make sure that the artifacts are published.<\/p>\n<h2>3. Azure<\/h2>\n<p>3.1. Navigate to the services tab in your account: <code><a href=\"https:\/\/%7byour_account%7d.visualstudio.com\/DefaultCollection\/%7Byour_team_project\">https:\/\/{your_account}.visualstudio.com\/DefaultCollection\/{your_team_project}\/_admin\/_services<\/a><\/code>&nbsp;<\/p>\n<p>3.2. Create a new Azure service endpoint.<\/p>\n<p>Enter a name by which you will refer to the connection. For this example, use <strong>Certificate<\/strong> authentication. Download your publishsettings&nbsp;from this URL: <a href=\"https:\/\/manage.windowsazure.com\/publishsettings\">https:\/\/manage.windowsazure.com\/publishsettings<\/a>. Enter&nbsp;the ID, subscription name,&nbsp;and certificate values from the file and paste them into the Add Azure Subscription dialog box.<\/p>\n<pre class=\"withExpandCollapseButton\" style=\"margin-bottom: 0px\"><code class=\"language-xml collapsed hljs\"><span class=\"pi\"><span class=\"pi\"><span class=\"hljs-pi\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;<\/span><\/span><\/span><br \/><span class=\"tag\"><span class=\"tag\"><span class=\"hljs-tag\">&lt;<\/span><\/span><span class=\"title\"><span class=\"tag\"><span class=\"title\"><span class=\"hljs-tag\"><span class=\"hljs-title\">PublishData<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\">&gt;<\/span><\/span><\/span><br \/><span class=\"tag\">&nbsp;&nbsp;<\/span><span class=\"tag\"><span class=\"tag\"><span class=\"hljs-tag\">&lt;<\/span><\/span><span class=\"title\"><span class=\"tag\"><span class=\"title\"><span class=\"hljs-tag\"><span class=\"hljs-title\">PublishProfile<\/span><\/span><\/span><\/span><\/span><br \/><span class=\"tag\"><span class=\"hljs-tag\"><span class=\"hljs-title\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><\/span><\/span><span class=\"attribute\"><span class=\"tag\"><span class=\"attribute\"><span class=\"hljs-tag\"><span class=\"hljs-title\">SchemaVersion<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\"><span class=\"hljs-title\">=<\/span><\/span><\/span><span class=\"value\"><span class=\"tag\"><span class=\"value\"><span class=\"hljs-tag\"><span class=\"hljs-title\">\"2.0\"<\/span><\/span><\/span><\/span><\/span><br \/><span class=\"tag\"><span class=\"tag\"><span class=\"hljs-tag\"><span class=\"hljs-title\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><\/span><\/span><\/span><span class=\"attribute\"><span class=\"tag\"><span class=\"attribute\"><span class=\"hljs-tag\"><span class=\"hljs-title\">PublishMethod<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\"><span class=\"hljs-title\">=<\/span><\/span><\/span><span class=\"value\"><span class=\"tag\"><span class=\"value\"><span class=\"hljs-tag\"><span class=\"hljs-title\">\"AzureServiceManagementAPI\"<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\">&gt;<\/span><\/span><\/span><br \/><span class=\"tag\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"tag\"><span class=\"tag\"><span class=\"hljs-tag\">&lt;<\/span><\/span><span class=\"title\"><span class=\"tag\"><span class=\"title\"><span class=\"hljs-tag\"><span class=\"hljs-title\">Subscription<\/span><\/span><\/span><\/span><\/span><br \/><span class=\"tag\"><span class=\"hljs-tag\"><span class=\"hljs-title\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><\/span><\/span><span class=\"attribute\"><span class=\"tag\"><span class=\"attribute\"><span class=\"hljs-tag\"><span class=\"hljs-title\">ServiceManagementUrl<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\"><span class=\"hljs-title\">=<\/span><\/span><\/span><span class=\"value\"><span class=\"tag\"><span class=\"value\"><span class=\"hljs-tag\"><span class=\"hljs-title\">\"<\/span><\/span><a href=\"https:\/\/management.core.windows.net\/\"><span class=\"hljs-tag\"><span class=\"hljs-title\">https:<\/span>\/\/<span class=\"hljs-attribute\">management.core.windows.net<\/span><\/span><\/a><span class=\"hljs-tag\">\"<\/span><\/span><\/span><\/span><br \/><span class=\"tag\"><span class=\"hljs-tag\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><\/span><span class=\"attribute\"><span class=\"tag\"><span class=\"attribute\"><span class=\"hljs-tag\"><span class=\"hljs-attribute\">Id<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\">=<\/span><\/span><span class=\"value\"><span class=\"tag\"><span class=\"value\"><span class=\"hljs-tag\"><span class=\"hljs-value\">\"<\/span><\/span><span style=\"font-weight: bold;background-color: yellow\"><span class=\"hljs-tag\"><span class=\"hljs-value\">{Copy_and_Paste_into_Subscription_id_field}<\/span><\/span><\/span><span class=\"hljs-tag\"><span class=\"hljs-value\">\"<\/span><\/span><\/span><\/span><\/span><br \/><span class=\"tag\"><span class=\"hljs-tag\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><\/span><span class=\"attribute\"><span class=\"tag\"><span class=\"attribute\"><span class=\"hljs-tag\"><span class=\"hljs-attribute\">Name<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\">=<\/span><\/span><span class=\"value\"><span class=\"tag\"><span class=\"value\"><span class=\"hljs-tag\"><span class=\"hljs-value\">\"<\/span><\/span><span style=\"font-weight: bold;background-color: yellow\"><span class=\"hljs-tag\"><span class=\"hljs-value\">{Copy_and_paste_into_Subscription_Name_field}<\/span><\/span><\/span><span class=\"hljs-tag\"><span class=\"hljs-value\">\"<\/span><\/span><\/span><\/span><\/span><br \/><br \/><span class=\"attribute\"><span class=\"tag\"><span class=\"attribute\"><span class=\"hljs-tag\"><span class=\"hljs-value\">ManagementCertificate<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\"><span class=\"hljs-value\">=<\/span><\/span><\/span><span class=\"value\"><span class=\"tag\"><span class=\"value\"><span class=\"hljs-tag\"><span class=\"hljs-value\">\"<\/span><\/span><span style=\"font-weight: bold;background-color: yellow\"><span class=\"hljs-tag\"><span class=\"hljs-value\">{Copy_and_paste_into_Subscription_certificate_field}<\/span><\/span><\/span><span class=\"hljs-tag\"><span class=\"hljs-value\">\"<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\"> \/&gt;<\/span><\/span><\/span><br \/><span class=\"tag\">&nbsp;&nbsp;<\/span><span class=\"tag\"><span class=\"tag\"><span class=\"hljs-tag\">&lt;\/<\/span><\/span><span class=\"title\"><span class=\"tag\"><span class=\"title\"><span class=\"hljs-tag\"><span class=\"hljs-title\">PublishProfile<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\">&gt;<\/span><\/span><\/span><br \/><span class=\"tag\"><span class=\"tag\"><span class=\"hljs-tag\">&lt;\/<\/span><\/span><span class=\"title\"><span class=\"tag\"><span class=\"title\"><span class=\"hljs-tag\"><span class=\"hljs-title\">PublishData<\/span><\/span><\/span><\/span><\/span><span class=\"tag\"><span class=\"hljs-tag\">&gt;<\/span><\/span><\/span><\/code><\/pre>\n<h2>4. Release<\/h2>\n<p>4.1. In the <strong>RELEASE<\/strong>&nbsp;hub, create a new release definition. Choose <strong>Azure Website Deployment<\/strong> for the deployment template.<\/p>\n<p><img decoding=\"async\" src=\"\" alt=\"Starting a new release definition\" \/><\/p>\n<p>Rename the environment to <strong>Dev<\/strong>. You will notice that two tasks have been added to the Dev environment. The <strong>Azure Web App Deployment<\/strong>&nbsp;task should have selected the Azure service endpoint that you created in the previous section. Enter the name of the website, as one of the inputs to this task.<\/p>\n<p>4.2.&nbsp;&nbsp;Link an artifact source to the release definition.<\/p>\n<p><img decoding=\"async\" src=\"\" alt=\"Linking a new artifact source\" \/><\/p>\n<p>In the dialog that opens, set the <strong>Type<\/strong> to <strong>Build<\/strong> and select the build definition that you created earlier.<\/p>\n<p>4.3.Setup the release to be automatically created when the build completes.&nbsp;In the <strong>Triggers<\/strong> tab of the release definition, specify that a new build will automatically trigger the creation of a new release.<\/p>\n<p><img decoding=\"async\" src=\"\" alt=\"Setting the Continuous deployment trigger for a definition\" \/><\/p>\n<p>4.4. Back in the <strong>BUILD<\/strong> hub, queue a new build. Once the build completes, a new release should automatically be created.<\/p>\n<p><img decoding=\"async\" src=\"\" alt=\"Commands on the shortcut menu for a release in progress\" \/><\/p>\n<p>The <strong>Summary<\/strong> page of the release shows&nbsp;the environments in the release definition and the progress of the release for&nbsp;each one. It also shows the builds, work items, and commits that are part of that release.<\/p>\n<p><img decoding=\"async\" src=\"\" alt=\"Viewing the details of the release in progress\" \/><\/p>\n<p>4.6. You can browse to your newly deployed website using the URL <code><a href=\"http:\/\/{website-name}\/azurewebsites.net\">http:\/\/{website-name}.azurewebsites.net<\/a><\/code>.<\/p>\n<h2>What next?<\/h2>\n<ul>\n<li>Explore the <a href=\"https:\/\/msdn.microsoft.com\/Library\/vs\/alm\/Release\/overview-rmpreview\">complete documentation<\/a> of Release Management service.<\/li>\n<li>Explore the section on <a href=\"https:\/\/msdn.microsoft.com\/Library\/vs\/alm\/Release\/overview-rmpreview\">release walkthroughs<\/a> for more examples on deploying apps.<\/li>\n<li>Track the section on <a href=\"https:\/\/msdn.microsoft.com\/Library\/vs\/alm\/Release\/getting-started\/release-notes\">release notes<\/a> for exciting features that we roll out every few weeks.<\/li>\n<\/ul>\n<p><a class=\"twitter-follow-button\" href=\"https:\/\/twitter.com\/vsreleasemgmt\">Follow @vsreleasemgmt<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today at Connect(), we announced the public preview of the new Release Management service in VSTS. This service helps you automate deployment of your application software to multiple environments all the way to production. You can deploy applications to your on-premises servers or to Azure and other cloud platforms. Using Release Management, you can easily [&hellip;]<\/p>\n","protected":false},"author":67,"featured_media":45953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[224,253,226,1],"tags":[],"class_list":["post-10512","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-azure-devops-server","category-ci","category-devops"],"acf":[],"blog_post_summary":"<p>Today at Connect(), we announced the public preview of the new Release Management service in VSTS. This service helps you automate deployment of your application software to multiple environments all the way to production. You can deploy applications to your on-premises servers or to Azure and other cloud platforms. Using Release Management, you can easily [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/10512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=10512"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/10512\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/45953"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=10512"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=10512"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=10512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}