I was recently working on my build & release flows for my project at work, trying to optimise it as much as possible.
I had the requirement that I only wanted 1 build definition, and 1 release definition per component.
The project consisted out of several components (e.g. an API, angularjs front-end, …) and I only wanted to release components which had changed.
I put together a powershell script which, when called as follows
.\TagBuild.ps1 -Tag Api -PathFilters sources/My.WebApi,sources/My.DAL,sources/My.Common
would tag my VSTS build with the tag Api when any files were changed in the paths sources/My.WebApi/*, sources/My.DAL/* or sources/My.Common/*
Then I could update my release definition for my API to only trigger an automated release if the build was tagged with Api