My team is developing a suite of apps that each consume a plugin customized for each customer. A Core solution was created with our webs and three services, and a stub custom plugin project. The Octopus deployment for this solution was routine.
The custom plugin for each customer is just the custom plugin project with NuGet dependencies to our core Assemblies. My question is on how to deploy this solution.
When we deploy to a customer, I see that I cannot re-deploy those same packages onto the same server, since they are already there from the core code deployment. We are deploying to a single DEV environment.
I need to download my plugin’s specific version of the Core code(as they will vary over time as each comes on board). I had thought that should be part of the customer deployment, but now I suspect that might not be the way to go.
So in converting to Octopus, how would we best deploy each customer plugin ?
NOTE: As I type this, I am thinking that I need to create customer specific environments for DEV and QA — as in CompanyA-Dev, CompanyA-QA. Is that what works, or is there another way?
Thanks for all the hard work.
My customers are external with their own policies on installation. So, we do not have an environment for any customer. As far as we are concerned, our production gets FTP-ed out to our customer.
Similarly, we have to deploy each of those core packages to each customer – 2 webs, 3 services, and a migration. That is what is causing my issues – with one DEV environment, I can only deploy a unique package name one time.
I am not there yet, but customer-environment environments seems to be the way to go. I need to figure out how to force re-deployment of the packages from the other core project. But that is a separate question, entirely.