Rush
Component ID
Component name
Component type
Maintenance status
Development status
Component security advisory coverage
Downloads
Component created
Component changed
Component body
Drush tools to enhance and improve Drupal development operations and workflow.
The project's purpose is to allow Drupal Developers to:
- Reduce typical Drupal development workflows down to one step (one Drush command).
- Create re-usable and share-able Drupal development operations and workflows.
Visit http://palantirnet.github.io/rush/html/ to view full project documentation.
Example Usage
Run a Drush Rush command like:
drush rush myjob.init
To parse the job folder's rush files for build parameters and build operations and then execute the following operations:
- Make the build directory
- Put the directory in the web root
- Add other directories and files to the build (setup the build skeleton)
- Create a docroot folder for the Drupal code base
- Build the code base with Drush Make using specified makefile(s) and prepare the site for install
- Create the specified database
- Create the specified dns and virtual host entries
- Run any pre-build commands
- Run any pre-build scripts
- Create build aliases.drushrc.php files
- Install the site
- Change variable values as specified
- Run any post-build commands
- Run any post-build scripts
- Put the build under version control
- Create a remote repo (such as on GITHUB), commit the code, and push it
Background
This project originates out of experience using Jenkins to automate building and testing Drupal projects.
Note: Jenkins is an extendable open source continuous integration server. Visit: http://jenkins-ci.org/ for more information.
Beyond its excellent tool set to execute and monitor the results of repeated build jobs, Jenkins is a good tool to automate repetitive workflows for developers.
For example, if a developer needs to work on a website locally, he or she typically must:
- Get the code via a Versions Control System like git
- Switch to a branch or tag to work on
- Change or add some parameters in settings files to match the development environment
- Get the db export
- Create a testing db
- Import the db snapshot
- Create a local host file entry
- Restart Apache
That's eight steps before starting to code.
Jenkins can automate many of these common developer workflows, using job parameters to let developers simply enter a project name and a branch and then run a Jenkins job to do their repetitive build work for them.
Like Jenkins, Drush Rush is a tool to run parameterized builds with Drush. In most cases the build jobs are a series of core drush commands chained together to complete a full build process with a single command.
A Few Points about Drush Rush Jobs
- Drush Rush jobs are written once then used repeatedly. There is probably little value to writing a Drush Rush job for a one time build process.
- Drush Rush jobs are extendable. Complex jobs may be written by extending and or combining similar jobs.
- Drush Rush jobs are shareable so a job written by one developer may be shared with many.
- Drush Rush jobs are light weight. Drush Rush may be used to execute steps as part of a continuous integration or automated testing process, however, it is not a CI or Testing Suite.
Sponsors
Development is sponsored by Palantir.net.
