Wednesday, September 9, 2020

Deployment SCWDP Packages Using Octopus

    There are few ways, how Sitecore is deployed to your hosting. If you are using Azure PaaS then for deployment you use Azure Pipelines. But, when you use on-premise hosting then there is very high probability that you use TeamCity + Octopus.

     Sitecore had introduced SCWDP packages with with Sitecore Azure Toolkit. Indeed, SCWDP packages are well-known WDP packages. It is standard format of files that is used by web deploy to publish your code to IIS. I like SCWDP tools in Sitecore Azure Toolkit. It is step forward to standardization. You are able pack your code and deploy to website. Also, you have backward compatibility. It is possible to convert regular Sitecore packages to .scwdp files with one command line. And you can easily deploy these packages to Azure PaaS. Many thank to Bart Verdonck for list of articles, how to create and use .scwdp packages in Azure.

    But when you will try to use these .scwdp packages with Octopus, you will be unpleasantly surprised. Builtin Octopus step templates don't allow you to deploy these files. Of course you can deploy .scwdp file using powershell+msdeploy, but you need to repeat it for each your project and each package. That is why I decided to wrap this powershell script into step template that could be reused in many projects. 

    Octopus has quite friendly way to contribute step templates. You need to fork OctopusDeploy/Library, create step template by exporting your step from Octopus and send pull request. After review and approve of pull request, it becomes available in list of community templates. Now it can be easily reused in different Sitecore deployment on different Octopus servers.


P.S. I know that Docker is future, and Sitecore is moving in that direction to provide unified deployments to different cloud platforms and on-premise hosting. But, I hope that for companies, who are on 9 version, this Octopus step template will save their time.