We recently upgraded Octopus Deploy from 2021.1 to 2021.3. When we did that we had problems with a bunch of our projects.
These projects use a custom step template called “Bash Deploy Script” to run the deploy. That step is based on the “Script” step. It was setup to have the script parameters entered on separate lines (for readability). It looked similar to this:
--repo-version #{PackageVersion}
--environment #{Octopus.Environment.Name | ToLower}
--consul-address #{DEPLOY_CONSUL_ADDRESS}
--consul-token #{DEPLOY_CONSUL_TOKEN} #{ExtraArgs}
After the upgrade, this would not work. The line breaks had to be remove for it to work. Like this:
--repo-version #{PackageVersion} --environment #{Octopus.Environment.Name | ToLower} --consul-address #{DEPLOY_CONSUL_ADDRESS} --consul-token #{DEPLOY_CONSUL_TOKEN} #{ExtraArgs}
Error Details
The error message we got when the parameters were on individual lines was:
/etc/octopus/default/Work/20211213175835-150711-4098/deploy.sh: line 47: ./.teamcity/build.sh: No such file or directory
Once the line breaks were removed, it went back to working as it did before the upgrade to 2021.3.
While not ideal, we can live with it needing to be on one line.
The problem is that we cannot use any of our existing releases now. This is because the process change is not registered on any releases that already exist.
Things that were in process to be released now need a new build. But far more concerning to us is that our 30 applications that use this process can no longer be rolled back. We would have to make a new build and deploy it out. For one or two, that is doable, but for 30 applications it becomes a big deal (new builds, paperwork, approvals, possible downtimes, deployments etc).
We need a way to update those existing releases to use the new process.
How can I update an existing release to use the process change?