As most of Sitecore developers I quickly fall in love with Helix base solution approach but when it comes to developer experience Gulp was not feeling like the best match for build and deployment neither on my local machine…
As you have probably experienced, getting Gulp up and running is pretty simple, but as you start adding projects and complexity to your solution the build time increase exponentially and I have seen solutions where the Gulp build task taking more than 20 minutes, compared to 1-2 minutes of a standard Visualstudio build & publish command….
Therefore my idea to use Powershell even to deploy on my local machine for a full build and publish of my solution locally…
The idea is to hook in the full build and publish of all the projects on the publish of the main website project…
In reality, the code to achieve it, it is pretty simple and you can get it to work pretty easy since you need to worry only about three areas:
- Clean up of configs
- Build and publish of all the projects
- Copy configs that did not come after the full publish
As additional steps, you may consider including the Unicorn or TDS synchronisation to replicate what you do within Gulp but personally, I like to run manually all the items synchronisation to keep closer control and have quicker build and publish time…
Few things to do to get it running:
1. Install prerequisites
IIS Management Script and Tools must be enabled from ‘turn windows features on or off’
2. Copy the powershells script and powershell config in the website – configuration folder
You need these two files from my Gist: https://gist.github.com/steliodibello/4cb47563ce43b922b943a000ec072853
remember to replace XXX with your project name
3. Amend the main webiste project to invoke the powershell on the after build step
<Target Name=”PublishAll” AfterTargets=”CopyAllFilesToSingleFolderForPackage”>
<Exec Command=”powershell.exe -NonInteractive –ExecutionPolicy Unrestricted -command "& { &’$(SolutionDir)Configuration\PostPublish.ps1′ -solutionPath ‘$(SolutionDir)’ } "” />
</Target>
For further reference and similar blogs who have inspired mine, have a look at:
https://www.onceinawhitemoon.net/2019/04/automatically-deploy-all-sitecore-helix-projects/
and
https://whipeter.wordpress.com/2018/09/07/sitecore-helix-build-and-deploy-powershell-script/