We have a TeamCity 7.1 installation that builds all branches from a GitHub repository.
GitHub has a notification hook back to TeamCity to trigger a build on check-in. We also have TeamCity polling GitHub every 120 seconds to check for changes (in case the server was offline when a change was checked in).
Our normal development follows a common pattern:
- Create a branch from master
- Commit to that branch until finished with a feature
- When finished, pull from master to merge any changes and push to remote
- Submit a GitHub pull request to allow the admins to merge into master
Everything is working swimmingly (after much searching to get the correct configuration settings) however...
The above process triggers several builds on TeamCity and I'd like to know whether they're all necessary. Typically we'll end up with:
- A build for /refs/heads/branch-name
- A build for /refs/pull/number/head
- A build for /refs/pull/number/merge
Naturally the first build is the last check-in on the particular branch, and the second build is the pull request, but what is the third build for?