Allow variable version for packages when creating releases
We have a nuget package which has been named after our tenants.
We want to deploy the package as a part of our overall pipeline, however when we generate the release it wants a version number for that package, and each package has its own individual version, as some tenants have their package updated more often than others.
We would like Octopus to resolve the Package Version at deployment time, just like it resolves the Package ID when using a variable binding expression.
In this case it would be useful if you could specify "*" or "latest" (think docker) so Octopus would just grab the latest available version of the resolved package.
The alternative to this is adding individual, tenant-scoped Package Steps per tenant, which seems like a lot of management overhead, and could be avoided by variable package version expressions for Releases.
We use our own custom configuration templating mechanism, and have some 'patch files' that we use to override settings (at deployment time) such as database connection strings, feature flags etc. Currently we fix our patch files package to version 126.96.36.199, and replace it each time we need to change it, but this causes the Error 'Basis file hash xxx does not match the file hash specified xxx' which does not block the deployment but is not very nice.
Further, we have problems when our TeamCity server tries to push a new version of 188.8.131.52 and Octopus is trying to also do a deployment - the nuget package is locked and TeamCity fails.
Therefore, I think this feature would be great!
I have exactly the same problem. I have environment variables in the package id field. Dunno what to do right now.
Jerry Nothstine commented
I have almost exactly the same problem. I have multiple customer code bases and generate a different nuget package from each custome (customerA.nupkg, customerB.nupkg) Each package is different than the other and is released at different times with different version numbers. When I create a release for a project, it has to know the customer name so it can get a list of all the versions of the nuget package for that customer. With the multiple tenant feature, this doesn't work because when I create the release, I don't know the customer name.
Maybe it would be better to select the nuget packages when I deploy to a specific tenant so I could pick the nuget package then. Once a create a deployment, I would want that deployment to always use the nuget package that was selected when it was first created.
We have created a GitHub Issue to follow and get involved with the design of this feature: https://github.com/OctopusDeploy/Issues/issues/2755