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:
- A "Madlib" which allows you to tokenize the input of a drush command
- A reference to another drush recipe
- A drush command to execute
- 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
- 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.