Keeping your Drupal platform up to date automatically
If you’re a web agency using Drupal, you probably have one (or many) codebases which handle the various Drupal websites you are maintaining for your clients. While building new functionalities for a client, revamping the design of one of your client’s site or fixing bugs can be rather fun and exciting tasks, maintaining the sites and updating their Drupal modules is rarely fun. Looking at the list of modules to update, downloading them and sending the changes to your production codebase is a rather repetitive and boring task, but quite an important one since you don’t want to miss security updates.
It is after experimenting these boring maintenance tasks over and over again that I decided to create an open source script, drupdate, and a service, drupdate.gvj.ch, to keep my drupal platforms up to date automatically for me (and eventually for others). Now, every time there is a module or core update, github sends me an email asking me to merge a pull request, which contains the module or core update. I just have to review it, and click on the merge button if I’m happy with it.
How does it work ?
All you need to do is log into drupdate.gvj.ch using your github account, and create a new project. Give the path to your github repository where you store your Drupal codebase, eventually a list of modules or themes which should NOT be updated, and save it. Drupdateio, the github user for drupdate.gvj.ch, will then pull your code every 24 hours, check if there any module updates and, if there are, will send you a pull request. You can then merge this pull request after reviewing it.
Will it work for me ?
Setting up drupdate.gvj.ch for your codebase assumes a few things:
- Your codebase is hosted on github
- Your codebase is free of patches: drupdate.gvj.ch does not (yet) handle patches for your codebase. If you have patched modules, you should add them to the list of ignored modules so that drupdateio does not try to update them
- Your modules are in sites/all/modules: so far, I haven’t tested drupdate on codebases where modules are under /profiles for example. It might work, but I can’t guarantee it
Give it a try and let me know how it goes. Worse case, you can delete your project from drupdate.gvj.ch. Best case, you never have to worry again about missing module or core updates, and you end up saving minutes / hours of boring maintenance work.
Originally published at https://www.gvj-web.com on February 8, 2016.