Gå till huvudinnehållet Gå till huvudmenyn

Epinova DXP deployment extension – With Octopus deploy

Av Ove Lartelius Lästid: 1 minut

Example how you can use Epinova DXP deployment extension in Octopus deployment.


Not everyone uses Azure DevOps when deploying Optimizely websites to Optimizely DXP 😊. We recently helped a customer who wanted to continue using Octopus Deploy for their CI/CD but needed assistance with deploying to Optimizely DXP. Since we have created the Epinova DXP Deployment Extension, which is specifically tailored for Azure DevOps, we aimed to reuse as much code as possible. This was the result of that implementation.


  • Knowledge of deploying to Optimizely DXP
  • Basic understanding on how PowerShell modules works.
  • Knowledge about Octopus Deploy

The big picture

We took the PowerShell scripts from the Azure DevOps tasks, which are used in the Epinova DXP Deployment Extension, and created a PowerShell module named “EpinovaDxpToolBucket”. This module can be downloaded from the PowerShell Gallery under the name “EpiCloud”. With all the logic encapsulated in PowerShell modules, it becomes easy to reuse the same code across Azure DevOps, Octopus Deploy, a local computer, or other environments/systems.

After importing the “EpiCloud” and “EpinovaDxpToolBucket” modules into Octopus Deploy as packages, we were able to create task templates that utilized logic from the two PowerShell modules. Since we exported the step templates as JSON and PS1 files, other Octopus Deploy installations can easily reuse these templates by simply importing them. These are available for you to reuse if needed.

We also set up three environments, two lifecycles, and one variable set before it was time to create the actual project in Octopus Deploy.

The project was set up to support automatic deployment to the DXP environment when a new NuGet package of the website is released to the Octopus Deploy package repository. The lifecycle that is triggered is managed by TeamCity, which is used as the build server in this case. We also added a channel so that we can manually restart a deployment if something is not approved during deployment to a slot environment.

How it is setup in details

Since the step-by-step process is documented in the Epinova DXP Deployment Extension repository on GitHub, we didn't want to duplicate information. Therefore, if you want to read the detailed description, you should visit https://github.com/Epinova/epinova-dxp-deployment/tree/master/Octopus and learn more.


I hope that this help someone out there. And do not hesitate to contact us if you need assistance.

For the latest documentation and guides please visit the repo on GitHub. Where all code, documentation and files etc. exist.

Vi vill gärna höra vad du tycker om inlägget

    Ove Lartelius
    Ove Lartelius

    Backend-utvecklare | OMVP

    Läs alla blogginlägg av Ove Lartelius