Building specific branches on Visual Studio Team Services

MiloTheGreat picture MiloTheGreat · Jan 9, 2016 · Viewed 8.3k times · Source

I have a repository in VS Team Services which is setup as :

-root
 |
 | -Dev (.sln)
 |
 | -Releases
     |
     | - Test (.sln)
     | - Live (.sln)

Each build is working fine, however its pulling the entire repo and I just want it to pull a specific branch (Dev, Test or Live)

So I'm selecting the Solution.sln file in the dev branch...

Screen shot of VSO

Answer

jessehouwing picture jessehouwing · Jan 9, 2016

On the Repository tab you can specify your workspace mappings, the default mapping grabs your whole repository excluding the $/project/drops folder.

By changing the first mapping to not take $/Project, but $/project/dev you'll limit the scope of the get operation. If you no longer get the root of your team project, you can remove the cloak of the drop folder, that will only raise a warning otherwise:

enter image description here

The next thing you should do, if you're setting this build up to be a CI build, it to specify the folders that will trigger this build on the Tiggers tab, because, again by default, CI builds will trigger on any change in the whole team project.

enter image description here

To allow you to keep your build definition as a template, I suggest to use the $(Build.SourcesDirectory)\MySolution.sln instead of $/project/dev/Mysolution.sln, that way you only need to update the mappings of a build definition after cloning it to another branch root or when saving it as a template.

enter image description here