Drush recipes is a simple format (json/xml/yaml you pick) that allows you to chain drush commands together in order to accomplish tasks faster, with far less packaging / deployment / scripting code then you'd otherwise use. It comes with lots of commands to automatically author new recipes and has lots of flexibility in how you use them.

There are currently 4 major types of ingredients in any recipe:

  1. A "Madlib" which allows you to tokenize the input of a drush command
  2. A reference to another drush recipe
  3. A drush command to execute
  4. A "conditional" that allows for users to be prompted to pick between recipes

Using these ingredient types you can easily mix, remix, reference, provide branching path logic and infinitely nest recipes for a huge block-chain of drush commands that you only typed 1 in order to execute.

Drush recipes has now been marked beta and is in production on many servers at Penn State. It's one of the backbone projects powering ELMSLN and I use it to quickly build, rebuild and test environments as well as clone and provide them for others.

In this talk you'll learn how drush recipes...

  • Helps automate site builds
  • Helps replace make files with a more flexible, extendible format (Drush recipes also can utilize make files!)
  • Can be used in production environments to perform standardized upgrades
  • Can replace hook_update_N in site deployments!
  • Better manages the parts of deployment that are truely Drupal specific (so that your logic in Fabric / Jenkins / etc is less drupal specific)
  • Simplify current workflows in development, testing as well as transparency of builds between teams of developers
  • Ways you can potentially replace the current install profile mentality with a series of well made recipes
  • How Penn State developers are going to release a script that packages recipes in such a way that you can answer simple questions and drush recipes will build the base-line system you are looking for

I'll show:

  • How easy it is to create and understand recipes via dwr, ddt and dvr based methods
  • How we've used Drush recipes, the drush.recipes webservice and travis to help improve the accuracy and reduce complexity in testing new code in travis
  • Drush recipes I use in development of new system as well as production every day to work faster and more accurately
  • How ELMSLN uses dr_safe_upgrade and drup to manage upgrades across an unknown number of systems
  • How Drush recipes can be used to speed up new site builds
  • How you can use the ddt command to safely pull down the structure of a site and give it to someone else as a file they can "replay" against their own site (effectively allowing you to morph a site into another one rapidly)

If this is accepted as a longer time slot (like 1.5 hours), I'll give the audience a gist worksheet to go through capabilities so that they can use it and get hands on experience that can be taken back to transform the nature of work.



Experience level: