I recently installed Nuget Gallery (https://github.com/NuGet/NuGetGallery) as a repository. Ideally I would like to create multiple feeds so that I could differentiate between nuget packages that will be reused in other projects (dll's, contracts etc) from the packages we use to deploy our projects to the production environment.
I know I can achieve this by creating multiple instances of the Nuget Gallery, but this seems to me a bit of an overkill, it would mean two websites two databases. I am also familiar with the fact that MyGet provides this functionally but I will not be able to get an approval for the purchase. I am also aware teamcity contains its own feed server but it doesn't allow this multiple feed scenario, nor its performs well enough to be used in a large scale.
In a nutshell the ideal deployment scenario would be as follow:
- teamcity generate deployment package or dll/contract package, depending on the build scenario.
- teamcity publishes deployment packages to a nuget gallery deploy feed (say: nugetgallery.server.com/deploy/api/v2).
- teamcity publishes dll/contract packages to a nuget gallery dev feed (say: nugetgallery.server.com/dev/api/v2).
- octopus always searches for packages in nugetgallery.server.com/deploy/api/v2
- devs / teamcity searches for packages in nugetgallery.server.com/dev/api/v2
This way I keep things clean and I can even go as far as create a third type of feed that only contains release packages so that I can be sure nothing would ever be deployed to production if it wasn't on that feed.
I might have missed some fundamental approach, so alternatives to this one I picked are welcome.