Main Content

Real world continuous integration for Drupal

Click to watch "Real world continuous integration for Drupal"

Evaluate this session.

Continuous integration (CI) is a practice in software development that builds, tests and deploys changes automatically, usually multiple times a day, on each change to a code base.

Find out how this practice can apply specifically to Drupal projects and see a working continuous integration setup in action and in a Drupal context.

Intended audience

Developers and shops interested in scaling their teams by automating their build and deploy processes.
The tools and techniques demonstrated would be of particular use and interest to those using Drupal to develop distributions or applications/products.

Pre-requisites

It is assumed you are familiar with the basics of team software development including version control, multiple environments and code based development in a Drupal context (update functions, exportables, etc.)
You should also be familiar with using Drush to drive Drupal sites from the command line.

Topics covered

The presentation will be in two parts. Part one defines the different build, test and deploy stages of a CI workflow and gives tool recommendations for each stage including Drupal specific demonstrations. Part two demonstrates a complete CI stack that leverages the Aegir platform for parts of the build and deploy tasks. The Jenkins CI server (http://jenkins-ci.org/) will be utilised throughout.

Part 1: Continuous integration basics

It's important to have clean seperation between building, testing and deploying changes as they flow through your pipeline so that you can use the best tool for each stage. Whilst traditionally the domain of compiled language projects, we will cover what a build means in the context of a PHP/Drupal project, how and when to run automated tests and finally automated deploys to different environments (and rolling back when things go awry).

  • Build

    Automated builds form the core of any CI setup. Our first look at tools will be a simple combination of phing to perform builds in any environment and jenkins to trigger builds automatically.

  • Test

    Testing will again focus on Jenkins and its ability to run automated tests and collect and respond to the results.

  • Deploy

    We will cover options for automating deployments across different environments using Capistrano under the hood with Jenkins at the wheel.

Part 2: Demo CI stack built with Jenkins and Aegir

See a complete Drupal focussed CI stack in action tying everything together to provide automated site deploys, testing, database/content syncing and the ability to rollback to previous builds with ease. Jenkins build jobs and other code will be made available.

Schedule info
Status: 
Accepted
Time slot: 
Thursday, February 7 - 3:45pm-4:45pm
Room: 
Centennial
Session Info
Speaker(s): 
Track: 
Coding & Development
Experience level: 
Advanced

Comments

I appreciated the new material on quality - good to bring in a few new ideas. The concept of a more comprehensive build process (with tests) is one we will need to think about a bit more. Good stuff.