Option to not extract packages
The basic request comes down to having a checkbox on the Deploy Package step to prevent Octopus from unpacking a NuGet/Zip/Tar file after pushing it to the target server.
Package to deploy: PackagerName 1.2.4
Target roles: MyServerRole
[x] Do not extract package after push
I'll dig a bit deeper on the reasoning behind the request.
We have a solution we'd like to deploy to a deployment pipeline which we receive from an external vendor. They provide a NuGet feed with their packages. One of these packages contains the installer code and all configuration templates, the other packages are validated and deployed using their installer. The installer expects the NuGet packages to be in an unextracted form.
Our constraints:
* Given that this is a 3rd party solution, we do not have control over their packages.
* We do not want to repackage every NuGet package in a Zip package prior to deployment, as this would require us to pre-emptively download and re-package every file we might want to deploy. For deployment of in-house developed solutions I can see this to be a valid workaround, but for 3rd party feed sources, it's not feasible.
* We do not want to intercept the NuGet package during the deployment. We want to skip this step altogether. While a nice workaround, some of the packages are of considerable size and extraction would add 10's of minutes to each deployment.
* We've considered using the "Offline package drop" target as a workaround, while this comes close, it requires us to open up SMB from the Octopus Deploy server to the target environments. Having these ports open to the target environment adds a large additional security surface to each exposed server.
We understand that pushing a package and not extracting it would not allow us to run embedded scripts. This is what we desire.
We would like to be able to run the scripts configured on the step properties, since we deliberately choose not to extract the package our scripts are aware that the packages are dropped in package form.
Looking at the Octopus Deploy forums, then we are not alone in this request:

We have released a ‘transfer a package’ step that does this functionality in 3.7.12 http://docs.octopus.com/display/OD/Transfer+Package
4 comments
-
Anonymous commented
We are currently on 3.4.11 version. Can I import this step template? As upgrade to v3.7.12 is couple of weeks away?
-
Jon commented
actually, having looked a bit more, what we actually need is the option to add credentials to the offline package drop, rather than the transfer package step (which uses a deployment target)
-
Jon commented
Hi,
this is a feature we have been after for a long time (we have separate lans for production and dev). One addition to this new feature we would need though is the option to use different credentials (we can't authenticate dev credentials in our prod lan). Is this something that could be added.thanks
-
Anonymous commented
I really want this feature too, but for slightly different reasons. We're using Octopus Deploy as the orchestration engine for deployments that are occurring to Linux, but using Chef to do the actual software installation.