My scenario is that I have a library project which produces a NuGet package using TeamCity 7 to publish to the local TeamCity feed. When the library has built it seems to be taking 5/6 minutes before any dependant builds are triggered and I was hoping for it to be a bit quicker (one or two minutes). I have some questions around that and some general questions:
My questions are:
- How often does a NuGet package trigger check for updated packages?
- Is there any way of changing it in a similar way to the VCS trigger?
- Is there any way of having different trigger times for different NuGet servers. For instance I may want my local packages to trigger quicker than a package from the offical NuGet package source as local packages are really just the same as chained builds.
- Is there an alternative way to trigger one build on completion of another without copying artifacts? If so, how do I do that and do you recommend it over the NuGet trigger?
- Given that an all-local NuGet dependency is really just another type of build dependency should/could they be included in the dependency graph?
- After a package has been updated it would be useful to update the VCS repostory (Git in my case) of the depenant project to reflect this, is this possible? Without doing this developers may be building and testing against an old version of the package whilst the one being deployed via teamcity is different. Additionally if they do notice they need a newer version of the package and update it and check it in then we will end up doing a second unecessary build.
- Continuing from question 6 (sorry about this), if a user with an old version of a package checks a change in to VCS which triggers a build, will the build use the old version of the package from source control or the latest version from the package server? Do I need to include a NuGet Installer step?
Finally a small suggestion; when setting up a trigger it would be useful to not have to enter the url for the NuGet Package source for local TeamCity feeds as presumably TeamCity already knows where they are. Don't worry, I've just found the %teamcity.nuget.feed.server% variable.