Continuous Integration for Dummies

Although it is (relatively) easy to use something like Jenkins for Continuous Integration with Drupal, you can create something of a dumbed-down budget version with just four commands:

  • svn update (or svn switch, or git equivalents)
  • drush updatedb -y
  • drush features-revert-all -y
  • drush cc all

To put that in plain English, this will:

  • update to the latest code base from SVN/GIT, etc
  • run any database updates in _update() functions
  • update to the latest version of any enabled features modules
  • clear all caches so that the latest feature changes are applied

The key to this is a disciplined use, and good understanding of features in Drupal 7.  I usually try to use a number of relatively small, well-defined feature modules, rather than one over-sized one.

If you are just looking for a way of rapidly deploying in an automated, reliable and repeatable way, this may well be sufficient for you.  If you need more CI-related features such as automated testing, code review, automated code documentation, etc. then you'll probably still need something like Jenkins.

Tags: 

4 Comments

Recreating fetaures

Nice short tutorial to deploy the things when you make them ready on your dev environment. But what about readying your dev environment? How do you recreate your features, etc? Do you use a module or a script?

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.