Hedgehog.TDS.BuildExtensions.GitDeltaDeploy

Obsolete - package moved to SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy. Use that instead going forward.


Keywords
TDS, Sitecore, BuildExtensions, Git, Delta, Deploy
License
MIT
Install
Install-Package Hedgehog.TDS.BuildExtensions.GitDeltaDeploy -Version 2.1.0

Documentation

TDS.BuildExtensions.GitDeltaDeploy

A custom delta deploy step for Sitecore TDS deployments using Git. Note: This is a third party extension, so it isn’t affiliated with Hedgehog or Sitecore, and their support teams should not be contacted for help with this. Instead I encourage developers to follow the debugging steps provided below, and to discuss their projects on the #tds channel in the Sitecore Community Slack.

Build status NuGet Licence

NuGet package available: SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy

Overview Blog Post

Debugging GitDeltaDeploy

Considerations for Builds/Deployments

GitDeltaDeploy Features

Usage

  • Ensure you have git.exe in your PATH environment variable.
  • Install the NuGet package into your TDS projects.
    • if you wish to use GitDeltaDeploy from VisualStudio, OR if your TDS projects DON'T use the HedgehogDevelopment.TDS NuGet package, you need to copy the packages/SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy.x.x.x/build/SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy.dll file to your Hedgehog MSBuild directory (C:\Program Files (x86)\MSBuild\HedgehogDevelopment\SitecoreProject\v9.0).
    • if you DO use the HedgehogDevelopment.TDS NuGet package on your build server, the build will copy the SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy.dll file to the HedgehogDevelopment.TDS NuGet package folder, alongside the HedgehogDevelopment.SitecoreProject.Tasks.dll so it can be used.
  • Activate GitDeltaDeploy
    • by setting <CustomGitDeltaDeploy>True</CustomGitDeltaDeploy> in your config (either in scproj, scproj.user, TdsGlobal.config or TdsGlobal.config.user).
  • Deploy using either
    • the project itself (right click project -> Deploy)
    • deploy the solution (right click solution -> Deploy Solution)
    • trigger a 'build' on MSBuild from the command line.
  • View the /packages/SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy.x.x.x/build/readme.txt file for additional settings and options.

How it works

The initial deployment will do a regular deployment, and save a LastDeploymentGitCommitId.txt file in your DeltaArtifactsFolder (which is {project}/Report by default). Subsequent deployments will use this file to check if there's difference between the last deployment commit id, and what the local repository is currently at. It finds the difference in .item files, and saves a list of changed .item files in {DeltaArtifactsFolder}/ChangedItemFiles.txt. Then Sitecore TDS will use a custom 'CullItemsFromProjectClass' that checks the ChangedItemFiles.txt file for each item. If the file is found in the list, it is 'deployable'. If not, TDS skips it. The LastDeploymentGitCommitId.txt file is then resaved with the newest commit id, ready for the next deployment.