We try to make our first real production deployment working and the process is rather painful, so I wonder if we do anything wrong and there is a better workflow.
We have ZIP packages produced by TeamCity and pushed to Octopus repository. Also TeamCity (using Octopus plugin) produces a Release which bundles together all the packages and also adds release notes. Now we can go to Octopus UI, find that release in Releases tab for Project and click Deploy to. So far so good. Then deployment fails because some variable in Octopus was not set right. We go make the variable right and… what now? We have to generate new Release, otherwise that variable change would not be pick up. So we click Create Release button and now we have to start everything from scratch - select the right version for each package we want to deploy plus add release notes again. This is a pain. Manually selecting versions for 15 packages is a pain! We don’t see the way to amend existing Release.
I understand Octopus principle that Release is immutable and each change requires new release. It is debatable, but we can take it as a requirement. But why Release must be created from scratch every time? Why can’t we make the changes and deploy again? Let Octopus increment Release number and consider it a new release, whatever.
When deployment fails we see if we are lucky or not - if the fix is in the environment, we can fix it and click “Try again” to have the same Release redeployed, BUT if the change is required somewhere in Octopus we are unlucky, because we have a ton of manual work to do now.
Please let me know if we can do better than that.
Konstantin