Hi
Here is the situation :
- Pretty large Monolithic Visual Studio solution 60+ projects including :
- 12+ Web Projects (asp.net webforms / MVC / Web API)
- 5 Windows services
- 40+ C# project libraries (used by most of the web projects and windows services)
Solution Logic
- All the projects (web and windows services) shares all the other dozens C# class libraries (this is the issue)
Infrastructure :
- TFS Server with Git
- Team City Server
- Octopus Server
- 3 Web servers : Dev, Test and Production (all with Octopus Tentacle installed)
- 3 SQL servers : Dev, Test and Production
So far I managed to :
- On code commit, build the whole solution on TeamCity Server.
- 1 Teamcity project only, configured with 3 steps : Nuget Installer, Build Solution sln, Create Release.
- This is building the solution, generating the artificats for projects including OctoPack and triggering the release on Octopus
- Octopus is reading from the TeamCity feed. I have only one project in Octopus with one step per web project to deploy IIS website.
The issue is that I am not sure if I am doing the thing right, I think I have not correctly splitted everything and I am kind of doing a hammer style deployment.
Each time I do any commit in the solution, it is basically rebuilding everything and publishing everything.
I know that there is not a perfect solution but I have the feeling that I am not splitting everything like I should