<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Visual Studio Team Services on Tiago Pascoal</title><link>https://pascoal.net/tags/Visual-Studio-Team-Services/</link><description>Recent content in Visual Studio Team Services on Tiago Pascoal</description><generator>Hugo -- 0.145.0</generator><language>en</language><lastBuildDate>Mon, 13 Nov 2017 23:15:40 +0000</lastBuildDate><atom:link href="https://pascoal.net/tags/Visual-Studio-Team-Services/index.xml" rel="self" type="application/rss+xml"/><item><title>VSTS: Collect Telemetry for build and release tasks using Application Insights</title><link>https://pascoal.net/2017/11/13/vsts-collect-telemetry-for-build-and-release-tasks-using-application-insights/</link><pubDate>Mon, 13 Nov 2017 23:15:40 +0000</pubDate><guid>https://pascoal.net/2017/11/13/vsts-collect-telemetry-for-build-and-release-tasks-using-application-insights/</guid><description>&lt;p>Developers of &lt;a href="https://docs.microsoft.com/en-us/vsts/extend/overview">extensions for Visual Studio Team Services&lt;/a> (or Team Foundation Server) tend to use &lt;a href="https://azure.microsoft.com/en-us/services/application-insights/">Application Insights&lt;/a> to collect telemetry about their extensions.&lt;/p>
&lt;p>Metrics like usage, performance, errors are collected to know which features are used, which features are working, how they are performing and if they are failing to improve them and better deliver value to its end users.&lt;/p>
&lt;p>There are several types of extensions&lt;/p>
&lt;ul>
&lt;li>Dashboard widgets&lt;/li>
&lt;li>Hubs&lt;/li>
&lt;li>Actions&lt;/li>
&lt;li>Work Item form elements&lt;/li>
&lt;li>Build and release tasks&lt;/li>
&lt;/ul>
&lt;p>Except for build and release tasks, all other extensions types run in a web browser, so it is easy to collect telemetry and Application Insights is a natural fit.&lt;/p></description></item><item><title>VSTS: Generating badges for Releases</title><link>https://pascoal.net/2017/11/01/generating-badges-for-visual-studio-team-services-releases/</link><pubDate>Wed, 01 Nov 2017 15:57:54 +0000</pubDate><guid>https://pascoal.net/2017/11/01/generating-badges-for-visual-studio-team-services-releases/</guid><description>&lt;p>Visual Studio Team Services (and Team Foundation Server) supports &lt;a href="https://docs.microsoft.com/en-us/vsts/build-release/concepts/definitions/build/repository#report-build-status">build badges&lt;/a> out of the box giving you an URL for an image that can be embedded in a web page (eg: a wiki or a GitHub page) to visualize the (always updated) status of a build.&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://pascoal.net/assets/uploads/2017/11/image.png">&lt;/p>
&lt;p>Unfortunately &lt;a href="https://www.visualstudio.com/team-services/continuous-integration/">Release Management&lt;/a> doesn’t offer the same support for releases, fortunately it easy to implement a release badge generator with a few lines of code and using VSTS built-in extensibility mechanisms.&lt;/p></description></item><item><title>VSTS Extensions: Improving load time by concatenating modules</title><link>https://pascoal.net/2016/08/16/vsts-extensions-improving-load-time-by-concatenating-modules/</link><pubDate>Tue, 16 Aug 2016 06:00:00 +0000</pubDate><guid>https://pascoal.net/2016/08/16/vsts-extensions-improving-load-time-by-concatenating-modules/</guid><description>&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>When implementing a Visual Studio Team Service (or TFS) &lt;a href="https://www.visualstudio.com/docs/integrate/extensions/overview">extension&lt;/a> it is a good practice to split your code among several modules and load them dynamically with the provided &lt;a href="https://en.wikipedia.org/wiki/Asynchronous_module_definition">AMD loader&lt;/a> using the require/define function to load modules asynchronously.&lt;/p>
&lt;p>While having one file per module, improves code legibility and reuse it can have some performance penalty to load many files separately.&lt;/p>
&lt;p>In this post I will show you a technique where you can still have all the benefits of organizing your code in several files (one per module) with all the benefits that this brings and at the same time improve your load time by combining your modules into a single file.&lt;/p></description></item><item><title>Sharing secrets among Team Build and/or Release Management definitions</title><link>https://pascoal.net/2016/04/15/sharing-secrets-among-team-build-andor-release-management-definitions/</link><pubDate>Fri, 15 Apr 2016 23:47:35 +0000</pubDate><guid>https://pascoal.net/2016/04/15/sharing-secrets-among-team-build-andor-release-management-definitions/</guid><description>&lt;p>When creating a team build 2015 (often called build v.next) or a release management definition, you can store secrets in variable (for example for passing a password or a token to a task).&lt;/p>
&lt;p>&lt;a href="https://msdn.microsoft.com/en-us/Library/vs/alm/Build/feature-overview">Secret variables&lt;/a> cannot be seen when viewing/editing a build definition (hence the name secret), only changed.&lt;/p>
&lt;p>Secret variables have some disadvantages&lt;/p>
&lt;ul>
&lt;li>Their scope is limited to the build/release definition, if you want to use the same secret among several definitions you have to replicate them among the definitions&lt;/li>
&lt;li>You can’t apply security to variables, if a user has permission to edit a build definition he can change the secret.&lt;/li>
&lt;/ul>
&lt;p>In order to overcome these two disadvantages I have created a build/release task that can be used to have a single instance of a secret (per team project) and that can be used to pass secrets to tasks.&lt;/p></description></item></channel></rss>