I have recently been working on an Umbraco project, and have evaluated Courier in order to deploy changes from an internal test site to live.
While Courier does the job, I am not very impressed overall. There are a mass of missing links, and next to no information on the web on how to get started. So this is my record which hopeefully will help someone (and myself the next time I have to do this).
The only resource I could find on the web was a fairly amateur Youtube video on Courier, which wasn’t all that helpful. You can’t see whats on the screen just the back of peoples heads. It isn’t really worth watching, it just warns you that not all component types are supported. I was only looking to deploy content and media, so hopefully this warning doesn’t apply to me – it certainly worked out that way during testing.
This is the official Umbraco Courier 2.5 link, which has a lot of incomplete documentation and missing links at the time of writing.
So, on to my findings:
Firstly its necessary to install Courier on both test and live. I made two test sites on my local dev machine, localhost:1600 and localhost:1601. The idea being to deploy from 1600 to 1601. I then installed the Courier package on both of these sites. When asked to specify a location during installation I specified the other site, e.g. on 1600 I typed in localhost:1601. If I didn’t do this there appears to be no way to enter it later, you have to uninstall and re-install again.
When installed, Umbraco Courier gives you a new icon on the admin login, and also an additional option on the action menus within Umbraco. I will explain both methods below:
Deployment from the Content Tree
When logged on as admin, you choose the appropriate part of the tree and then click the Elipsis, then click Do Something Else.
You then choose “Courier” and the following page appears:
After some thinking, the following page appears:
Deployment from the Courier Menu
This is more complicated. From what I can tell (there are no video or other links available to tell me exactly how this is supposed to work, even the link from the Courier dashboard gives a 404), this is how its supposed to work:1. You create a revision.
2. When you create a revision, you have to specify what is in it. For us, choosing the appropriate Document content in the tree (or all documents) plus the correct level of dependancies was all that was required:
3. This is the revision page before you press “Package Selected” to create the revision:
4. Once it has been created you press Transfer to transfer it to the target machine:
5. Enter the target server from the drop down and press “Transfer”:
6. Log into the target server and find the revision in the Courier dashboard (or press Reload nodes if you are already logged in). Click on that revision, then click “Compare and Install”:
7. You then should press “Install Revision” to complete the process:
Things to Watch out For
- Firstly, I was unhappy about the sheer number of missing links everywhere I looked and lack of information generally. This is quite an important component for Umbraco because unless you are deploying to Azure and setting up Azure Staging as described in the link, you need something like this to be able to view your test site before going live.
- Secondly, it uses webservice technology and I have read warnings that large files may not transfer correctly and cause the process to crash. What can you do about this? Ensure your upload sizes are big enough on both sites, and transfer large files manually. It appears the Umbraco developers don’t know about how to reliably transfer large files using WCF, either by streaming or chunking the file into 64k blocks.
- I think the second process could be a lot easier, I don’t think my users are going to use it, because we don’t really want them logging onto the live site and accidentally making changes that then get overwritten (or risk transferring the wrong way).
- There is also a risk that certain data may not transfer and developer customisation is required to ensure this. This could be quite complex, especially for my customer, as they are using the Umbraco Hybrid Framework. Hopefully because they are using this and deploying deeper objects via Visual Studio, it might not be a problem, we will have to wait and see.
- Oh and then don’t get me started on the difficulties of getting the licence to install…
Maybe there is an opportunity for a product here that does a better job than this rather rough and ready product…