Multiple apps within a project

Hi folks,

There may be a really obvious solution to this, but it has us stumped.

Within one of our projects, we have 23 separate applications/web services. When creating a release in our current non-Octopus deployment tool, the ‘user’ can choose which of these 23 apps they wish to deploy. The tool will then (one app at a time) stop the app pool, deploy the code and restart the app pool. It won’t go anywhere near the apps that weren’t selected for deployment.

How would we model this in OD?

We had thought of:

  1. When creating a release, for any apps that aren’t to be deployed, select the ‘Last’ version for them and Octopus won’t deploy them. But how can we avoid Octopus running our steps to stop/start the app pool for those apps?

  2. Create a stop/deploy/start step for each sub-app and the user manually chooses which of those 23 deploy steps that should/shouldn’t be executed in the Release setup. This would be a bit fiddly and error-prone.

I imagine this has been done over and over again by other people in OD, but we just can’t get our heads round it, so any help would be appreciated.

Also, do we need to have a Deploy Code step for each of the 23 packages available? That’ll be one heck of a long process. :slight_smile:

Hi Darren,

The question I would ask you is “are the applications independent?”.

From your question, it seems they are. In which case I would suggest a project for each application. While this approach has many advantages, I understand that it changes the concept of a release. Rather than one release containing many applications, you would then have a release per application. This allows each application to be versioned and deployed independently.

There is no concept of a “batch” release in Octopus Deploy. i.e. a release that contains many projects. So you would need to deploy the release for each project. I believe this is the better approach, rather than enabling\disabling steps. You can also perform these deployments via the Octopus API, if you are looking to integrate with other tools.

I hope this helps.