I have a TeamCity build configuration that has been working fine until recently. Suddenly, there is a build stuck in the queue that says it is not compatible with any agents. The reason given is:
Implicit requirements: teamcity.build.branch defined in Parameter: BuildFormatSpecification
My BuildFormatSpecification parameter is defined thus:
%MajorVersion%.%MinorVersion%.%PatchVersion%-%teamcity.build.branch%
That in turn is used in the Build Number Format field along with a build counter, like this:
%BuildFormatSpecification%.%sharedBuildNumber.id4%
The idea is that the build number comes out like "1.0.0-develop.22" and includes the Git branch being built. This follows the rules for Semantic Versioning. This scheme has worked for me over a number of projects, but suddenly this one build is stuck and I can't figure out why.
Any ideas?
teamcity.build.branch
is a predefined build parameter but it is only defined when a branch specification is configured. Therefore, to fix your problem, make sure that your build step has a VCS root configured and add e.g.+:refs/heads/(master)
as your branch specification.From TeamCity's documentation on Agent Requirements and implicit requirements: