{"id":3431,"date":"2012-03-27T05:45:00","date_gmt":"2012-03-27T05:45:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/bharry\/2012\/03\/27\/announcing-a-build-service-for-team-foundation-service\/"},"modified":"2024-05-13T12:55:37","modified_gmt":"2024-05-13T19:55:37","slug":"announcing-a-build-service-for-team-foundation-service","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/bharry\/announcing-a-build-service-for-team-foundation-service\/","title":{"rendered":"Announcing a Build Service for Team Foundation Service"},"content":{"rendered":"<p>Today in my VS Live keynote, I announced and demonstrated a new cloud based build service for our <a href=\"http:\/\/www.tfspreview.com\/\">Team Foundation Service on Azure<\/a>.\u00a0 From the beginning with tfspreview, you\u2019ve been able to do builds, but \u2013 you had to install, manage, patch, etc the build machines yourself.\u00a0 With this new service, we\u2019ve made it possible to skip that and just use a pool of build machines that we manage in the cloud (though you can still install and manage build machines if you like).\u00a0 And, of course, you can do more than just build \u2013 like with on-premises TFS, you can run a default workflow that includes, compilation, testing, etc or you can create a custom workflow that does whatever you like.\u00a0 This represents the next step in getting your project\/team started and productive in the shortest time possible.<\/p>\n<p>Our new build service works by maintaining a pool of Azure VM roles that can expand and shrink as needed.\u00a0 When you start a build, a VM is allocated from the pool to run your build.\u00a0 Your build is run, the build output is copied off the build machine then the VM is restored and it is returned back to the pool for someone else to use.<\/p>\n<p>After my announcement today, we will be enabling the new build service for all new and existing accounts on Team Foundation Service.\u00a0 It will take a few hours to enable them all but you should expect to see it available on your account by early afternoon.\u00a0 If you don\u2019t have an account but would like to try it out, you can request access.<\/p>\n<p>Visit <a href=\"http:\/\/www.tfspreview.com\">http:\/\/www.tfspreview.com<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/6114.image_thumb_41A65A14.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16109\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/6114.image_thumb_41A65A14.png\" alt=\"Image 6114 image thumb 41A65A14\" width=\"644\" height=\"433\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/6114.image_thumb_41A65A14.png 644w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/6114.image_thumb_41A65A14-300x202.png 300w\" sizes=\"(max-width: 644px) 100vw, 644px\" \/><\/a><\/p>\n<p>Click Create Account<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/7607.image_thumb_03D926BE.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16110\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/7607.image_thumb_03D926BE.png\" alt=\"Image 7607 image thumb 03D926BE\" width=\"644\" height=\"423\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/7607.image_thumb_03D926BE.png 644w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/7607.image_thumb_03D926BE-300x197.png 300w\" sizes=\"(max-width: 644px) 100vw, 644px\" \/><\/a><\/p>\n<p>If you have an invitation code (you can get one from someone who already has an account), you can just sign up or, if not, click the \u201cClick here to register\u201d link and it will take you to a page where you can leave an email address.\u00a0 How much demand we see will influence how fast we send out new invitation codes.\u00a0 We\u2019ve been fulfilling them within 1 to 2 weeks and I hope we can continue at that rate.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/1643.image_thumb_4D2B2FDF.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16111\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/1643.image_thumb_4D2B2FDF.png\" alt=\"Image 1643 image thumb 4D2B2FDF\" width=\"644\" height=\"423\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/1643.image_thumb_4D2B2FDF.png 644w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/1643.image_thumb_4D2B2FDF-300x197.png 300w\" sizes=\"(max-width: 644px) 100vw, 644px\" \/><\/a><\/p>\n<h3>Using Team Foundation Service<\/h3>\n<p>Using Team Foundation Service is very much like using an on-premises TFS server \u2013 it looks the same from Visual Studio (or Team Explorer Everywhere in Eclipse, for that matter).\u00a0 The only difference is that you use LiveID to login rather than a Windows login.\u00a0 Once you are in, it\u2019s transparent to you.\u00a0 This includes the new build service.\u00a0 You can create a new build definition, queue a build, etc the same way you would if you managed the infrastructure.\u00a0 The one difference is that you need to pick the \u201cHosted Build Controller\u201d in your build definition rather than a local build controller.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/7674.image_thumb_71AC9796.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16113\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/7674.image_thumb_71AC9796.png\" alt=\"Image 7674 image thumb 71AC9796\" width=\"804\" height=\"521\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/7674.image_thumb_71AC9796.png 804w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/7674.image_thumb_71AC9796-300x194.png 300w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2012\/03\/7674.image_thumb_71AC9796-768x498.png 768w\" sizes=\"(max-width: 804px) 100vw, 804px\" \/><\/a><\/p>\n<p>And (because we don\u2019t have UNC shares in the cloud), you configure the build output local (Staging location) to be a path in version control ($\/BuildsTests\/Drops) in the example above.\u00a0 I\u2019m not sure we\u2019ll continue to have version control be the only drop location for the service but for now, it was an easy solution that provides an efficient place that is secure and easy to manage.\u00a0 In addition it enables you to use the Team Foundation Server Proxy locally to improve download speeds for teams.\u00a0 Build retention policies still work and will clean up old, unwanted drops.<\/p>\n<h3>The Build VM Image<\/h3>\n<p>The only major limitation is you don\u2019t control the build machine.\u00a0 That simply means that if you have an external dependency in your project that is not in the default VM image, you will either need to check it in, enable your solution to download it from a public NuGet feed, or install it as part of your custom workflow.<\/p>\n<p>The exact set of supported frameworks will continue to be refined, however with this release we have the following installed on the build image:<\/p>\n<ul>\n<li>Visual Studio 2010 SP1<\/li>\n<li>Visual Studio 11 Beta<\/li>\n<\/ul>\n<p>This should allow you to build any of the project types that ship in the box for both of these releases with the exception of Windows Metro Style applications in VS 11.\u00a0 Once we have support for Windows 8 in Azure, we\u2019ll add that additional support.\u00a0 This is just a starting place \u2013 a minimalistic one, and we\u2019ve very interested in your feedback on what you\u2019d like to have us install on the image by default.<\/p>\n<p>In the near future, we will also enable Java builds.\u00a0 It\u2019s possible today but a bit manual.\u00a0 The problem is that, by default, Java builds use the upgrade template and we haven\u2019t added support for the new version control drop locations to that template yet.\u00a0 So, if you really want to get a Java build working on the cloud, then you can customize the default build workflow to enable Java builds \u2013 that\u2019s what our Team Explorer Everywhere team has done.\u00a0 They\u2019ve been using Team Foundation Service for their development for months \u2013 including cloud based builds for the past several weeks.<\/p>\n<p>&nbsp;<\/p>\n<h3>Unit Testing<\/h3>\n<p>As I mentioned above, the new build service does more than just compile.\u00a0 The default workflow supports unit testing (and you can modify the workflow to do almost anything you like).\u00a0 If you want to use the unit test frameworks in the box \u2013 MSTest or the new native C++ unit test framework, you can just checkin your tests and, by default, the build service will pick them up and run them as part of your build.\u00a0 The test results will be included in the build report.<\/p>\n<p>You can also use any of the newly supported 3rd party Unit Testing Frameworks in VS 11 \u2013 XUnit, NUnit, etc.\u00a0 There\u2019s a bit more configuration there so I encourage you to keep an eye on the <a href=\"http:\/\/blogs.msdn.com\/b\/visualstudioalm\/\">Visual Studio ALM blog<\/a> for more detail.<\/p>\n<p>&nbsp;<\/p>\n<h3>Clients<\/h3>\n<p>The new build service works seamlessly with the recent VS 11 Beta.\u00a0 In addition, last week, I blogged about a <a href=\"http:\/\/blogs.msdn.com\/b\/bharry\/archive\/2012\/03\/23\/keeping-your-tfs-2010-up-to-date-as-of-march-2012.aspx\">patch for the VS 2010 client<\/a> that enables it to work with the new build service (though I didn\u2019t mention that in the post because we hadn\u2019t announced the new service yet <a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2014\/02\/8228.wlEmoticon-smile_58CD4724.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-15586\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2014\/02\/8228.wlEmoticon-smile_58CD4724.png\" alt=\"Image 8228 wlEmoticon smile 58CD4724\" width=\"19\" height=\"19\" \/><\/a>).\u00a0 The Team Explorer Everywhere client that includes Eclipse support will also support the new build service.\u00a0 And lastly, stay tuned for an update to VS 2008 that will enable Team Foundation Service support.<\/p>\n<p>&nbsp;<\/p>\n<h3>Conclusion<\/h3>\n<p>Team Foundation Service is still a pre-release offering.\u00a0 We\u2019re working very hard on it and you should stay tuned to a lot more improvements in the coming months.\u00a0 We are releasing new capabilities to the service about every 3 weeks.\u00a0 In one of our recent updates, we changed our Terms of Service to more clearly express that the service can be used to \u201cgo-live\u201d production projects and not just test and experimentation.<\/p>\n<p>I hope you like the new build service and I look forward to hearing any feedback you have.<\/p>\n<p>Thank you,<\/p>\n<p>Brian<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today in my VS Live keynote, I announced and demonstrated a new cloud based build service for our Team Foundation Service on Azure.\u00a0 From the beginning with tfspreview, you\u2019ve been able to do builds, but \u2013 you had to install, manage, patch, etc the build machines yourself.\u00a0 With this new service, we\u2019ve made it possible [&hellip;]<\/p>\n","protected":false},"author":244,"featured_media":14617,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[5,4],"class_list":["post-3431","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-tfs","tag-visual-studio"],"acf":[],"blog_post_summary":"<p>Today in my VS Live keynote, I announced and demonstrated a new cloud based build service for our Team Foundation Service on Azure.\u00a0 From the beginning with tfspreview, you\u2019ve been able to do builds, but \u2013 you had to install, manage, patch, etc the build machines yourself.\u00a0 With this new service, we\u2019ve made it possible [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/3431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/users\/244"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/comments?post=3431"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/3431\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media\/14617"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media?parent=3431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/categories?post=3431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/tags?post=3431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}