7

I am looking at an existing setup of Sitecore that is using Courier as part of a continuous-integration process.

The process is currently:

  • Commits to a particular branch kicks off a Team City build
  • The build contains a TDS project of serialized items
  • Courier is executed to generate an .update package that compares the current state of serialized items to a copy of last state of serialized items
  • The .update packaged is NuGet packed along with the Website build for Octopus Deploy
  • Finally, the current serialized items are copied to be compared against during the next build

The advantage of this is that the .update packages generated are very lean. However, they completely depend on the previous Octopus Deploy deployment having succeeded as they are assuming the current state of items in Sitecore. If a build fails, or is even skipped, then successive builds won't be correct.

Is this a typical use of Courier, even with this problem?

A more robust method could be to just package and deploy all serialized items and then use Courier as part of the deployment process (rather than build) to generate an .update package at deployment, perhaps against a previous collection of serialized items that was known to be installed without error.

Is there a means of doing this efficiently that compares to the live database without having to rely on a previous set of serialized items?

2
  • 1
    Would it be possible for you to tag your last successful build and compare the items to that? – nickwesselman Sep 19 '16 at 17:39
  • We kind of faced the same issue when using Courier in a standalone exe , the exe was used to serialize the content and update svn branches with latest serialized items. Rollback was an issue flagged repeatedly. we eventually fell back on the reverting the build using the serialized items from the master SVN branch. Only problem was the changes done to sitecore items between the build and rollback – Abhay Dhar Oct 26 '16 at 11:30
5

An options could be not to use courier, but to use TDS delta builds, considering the fact that you already use TDS, by going back to a certain date in time. This will also keep the packages small.

You could, by the way, use TDS package deployer to automatically install these packages as well.(https://github.com/HedgehogDevelopment/SitecorePackageDeployer)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.