We have long build chains with snapshot dependencies and artifact dependencies configured in the same way for every dependency.
The snapshot dependencies are set to: "Do not run new build if there is a suitable one".
We have an installer which is the last item in the chain. Every build of a component increments it's build number. We want the installer to only trigger a build for components that have changed, so that our clients receive exactaly the same version if hasn't changed.
We've been using this strategy with success for a long time. I've noticed that, lately, components that haven't changed (source control) are being forced to build. Looking at the log for one of these components I've found this message:
[13:48:14][Updating sources] Using vcs information from server. Reason: no revision information for build configuration "trunk" and checkout directory C:\TeamCity\buildAgent\work\64dcf6d3f8ee9423 on agent
[13:48:14][Updating sources] Will perform clean checkout
[13:48:14][Updating sources] Clean checkout reasons
[13:48:14][Clean checkout reasons] Agent doesn't have any version of the project sources
[13:48:14][Clean checkout reasons] Checkout directory is empty or doesn't exist
We don't have "Clean checkout" marked on our VCS root. Any idea of why this directory could be missing?
Even if something happened to the directory, shouldn't TC be able to check that my branch is stil at the same commit as the previous build?
Any help would be appreciated.
We're using TC 9.0.1 (on Windows) and Git as our VCS.