Recreating old releases


We have following issue:
We have several Tenant projects with a lot of releases, some of them are deployed to all environments, some only to Dev and Test. We made change by replacing one of the steps in the Process of deployment. This step is using new Tenant variable. Old step was using around 5-7 Tenant variables. Then new step is also adding some additional configurations, which are not possible with the old step.
The problem is that, it is possible, that in the future it can happen, that we will need to deploy some of the old releases, but they will not deploy properly because in the snapshot they have old step, which don’t have all the configurations needed for successful deployment. On the other hand, we want to remove all Tenant variable which are related to the old step, but this will cause, old releases to fail, because Tenant variable are not included in the snapshot.
Our idea is that we would like all old releases to be fully functional and in the same time to have all the history of deployments, but the first one is not possible without recreating the releases.
We think of 2 solutions of this problem:

  1. Using Octopus Client to rename old releases to (x.x.x-old) and to create new one with the same version. This whey we will keep history of deployments and will have new release whit the same version as original one for future deployments if needed. This will work, but we will double number of packages.
  2. Second solution, for which we are not sure, that it is going to work is to create new release and to link all deployment from old release to the new one and then to remove old one. We think following:
    • Rename version of old release to “x.x.x-old”
    • Create new release with the same version as old one x.x.x , whit the same packages as original one.
    • Using Octopus client to find all Deployments, where Deployment.ReleaseId = [Old Release ID] and to replace this value with new release ID
    • After that to remove the old release.
    This way we will keep deployment history without dabbling the releases and we will be able to deploy old releases without problems.
    Can you please advise if option 2 it is going to work, because we are not sure, that this is the only relation between release and deployments? If you have other solution, we are opened for suggestions.
    Thanks in advance.

Vladislav Atanasov

Hi Vladislav,

I’ll be totally honest here, I’m not 100% your suggestions are going to work, you could test it out on a project and see if it works as you expect.

What I think the best solution here would be is to use channels to support multiple versions of your app simultaneous, please see our channels walkthrough, the only downside would be that you’d need to keep the old variables around on your Tenants.

I hope that helps.

Thank you and best regards,