When deploying an old release to new web servers we get - does not apply to the current environment, and will not be executed

We are using Azure Web Apps with virtual directories. The virtual directories represent different versions of our product.

We are using Octopus to deploy the NuGet packages our developers build in TFS.

As we add new servers to our Azure Subscription, we must install both old and new releases of our product to support different clients.

I have successfully added web servers, can deploy latest releases with no issus, but if I pick an old release and use “Deploy to” everything appears correct but when I run the script, I get “does not apply to the current environment, and will not be executed”.

I have checked all the settings, and all appears correct, plus it works for new releases. The web apps are added after the original release was created.

I have tried the Update Parameters button as we use variables to deploy the versions into different virtual directories on Azure. I have also tried downloading the NuGet package again through the advanced options. The old versions are still present in Octopus.

Please help.

Hi,

Thanks for reaching out. Is it possible that your deployment process from back then (when you created the old release) no longer applies to your current environment setup? If that is the case, then I’m afraid there’s no way to make the old release work with the current environments.

For you scenario I’d recommend you to follow this setup:

  • Have 2 different packages: One containing your Old app, and another one with the New app. Each package will have its own ID and version set.

  • On your current deployment process, have 2 deployment steps: one for Old and New

  • Each time you deploy, you’ll deploy the latest version of Old and the latest version of New and you’ll be able to support all customers.

In a couple of weeks we’ll release 3.1.2 which will have support for “Channels”. Think of “Channels” as if they were branches of your code. On project will be able to have many channels, and each will be able to have its own deployment process, use its own lifecycle and even be restritec to a specific range of versions of the same packages. For your scenario you could have something like this:

  • 1 project with 2 channnels: Old and New
  • Channel Old will only be able to deploy versions of your app from 1.0.x to 1.1.0.
  • Channel ‘New’ will be able to deploy from 1.1.0 and beyond.

Hope that helps,

Dalmiro