Automating TeamProject creation (Git included)

I get frequent request from my teams to create a new project, therefore I automated the task with a PowerShell script. PowerShell Creation scripts The script algorithm goes like this: Load the definition for the new project Validate the definition by checking the user accounts invoke the creation tool with the /validate option Creates the project using TFPT Creates an Organizational Unit in Active Directory where placing the groups Creates the AD groups and add the user account Creates corresponding TFS groups Checks that user account belongs to one of the three AD groups that control the TFS Access Level — best known as Licensing I will spare you the code here as it is more than 100 lines long.

Read more →

Do not leave your Collections off-line!

We have some unused collections and this seemed harmless, until I started accumulating problems. Best Practices Analyzer (BPA) The first issue happened with BPA. It refuses starting a scan, if it sees off-line collections. Not a big deal, as I put them online just for this. Lab Management I encountered a more serious issue with Lab Management configuration, so much that I opened a case with Microsoft Support. I tried to change the Virtual Machine Manager server used by TFS, and I received an unpleasant HostShutdownException error.

Read more →

New look, but there is more

What you see today is not a simple change in style, but a complete migration from WordPress to a static site. The main driver for this decision is the disliked for LiveWriter or in-browser editor and conversely my growing reliance on Markdown. I tried using WordPress plugins for MD, like Mytory Markdown, but the result was never satisfactory, as they do not support Github syntax. So I moved from a basic AWS machine (see How I set-up this blog), to a static web site on Azure.

Read more →

My daughter is trying to convert me

To classical music and I was lucky: 40 euros per person and two hours drive.

Read more →

TFS in PowerShell

I am re-factoring my PowerShell administration scripts and noticed many useful snippets to share, let’s start. Where is Team Foundation Server installed? Scenario: your script runs TFSSecurity.exe; sadly this tool is not in the path and, worse, the path changes from one Team Foundation Server version to another. The following function returns the Team Foundation Server path, e.g. C:\Program Files\Microsoft Team Foundation Server 12.0. function Get-TeamFoundationServerInstallPath { if (Test-Path "HKLM:\SOFTWARE\Microsoft\TeamFoundationServer") { $highestTFSversion = "{0:N1}" -f ( Get-ChildItem -Path "HKLM:\SOFTWARE\Microsoft\TeamFoundationServer" | Split-Path -Leaf | foreach { $_ -as [double] } | sort -Descending | select -First 1) $tfsPath = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\TeamFoundationServer\$highestTFSversion" -Name InstallPath -ErrorAction SilentlyContinue if ($tfsPath) { $tfsPath.

Read more →

Team field fix after update 3

We are testing the upgrade to TFS 2013 Update 3. At first sight everything seemed working, but one reviewer, opening the Work tab to see the Backlog for her Team Project, saw this nasty TF400917 error I realized that, a while ago, around 2012.4, we have applied Customize a team project to support team fields to that Project, and Custom.Team is our custom team field. What does Update 3? The major change in Update 3 is the transform of Test Plans and Suites in normal work items.

Read more →

Why do you copy all those binaries?

Some days ago I replied to StackOverflow question «TFS 2010 Build, constant drop location, random access issue», and it reminded of an approach used in the past that revealed being effective. The scenario TFS Build creates a new folder in the Drop share at each new Build, no matter if it was successful or completely failed. The folder name is taken from the build identifier generated during the build run, e.

Read more →

Third upgrade in a row

Last week I upgraded our TFS infrastructure from 2013 to 2013 Update 2. It was the third upgrade since I started working in this company, which means 3 upgrades in 4 months! This says something about our Development Directors which want the latest features because they need them; it is also a consequence of Product Group’s innovation pace. Call me lucky. The DevOps movement keeps repeating: the harder to deploy, the more often you have to do it.

Read more →

A small nice touch from TFS 2013.2

No more fussing around to move the cache folder: TFS 2013 Update 2 add a nice link at your fingertips on the Administration Console. Now, I just need to find how to script this setting…

Read more →

Increment Version for Changed Assemblies only – Third Part

This is the third and last installment of the series: in the First post we examined the basics of extending the MSBuild / Visual Studio process, and in the Second part how to extend the Team Foundation Server Build, so that the minimum set of assembly is recompiled and gets the version updated. The limit of the latter solution is in the version number appearing in the assemblies: they have no relation with build identifiers.

Read more →