I use a GitFlow branching strategy. I like to have 3 build configurations per project:
Integration - builds from develop, feature/* and hotfix/* with branch specification
Beta - builds from release/* with branch specification
Release - builds from master with branch specification
Note the use of brackets to set my preferred branch names. The reason I have these 3 builds is because I use the build configuration name as part of the build name, so for example I get builds in the format 1.2.3-Integration.27, the final number '27' is a project-wide shared build counter.
As an example of what I call 'non determinism', I have just merged a hotfix. In GitFlow, hotfixes get merged into master and develop. Since I added the hotfix branch to the branch specification after I pushed the branch, I did not get a build for that. Fair enough. So then I merge the hotix and I get the following builds, in this order: and with these branch names
Huh? I would have expected two builds, on branches named "master" and "develop", per my branch specifications. Where are the other two coming from?