build.sh
We are HUGE fans of simplicity, automation and open source. Here's one of our solutions for keeping track of Drupal module versions, custom/contrib code, deploying and taking backups. And more!
A while back I was introduced to a script which was used to download a given version of the Drupal core with a handful of modules AND copy any custom modules/profiles/themes under a given path inside the Drupal installation AND run the Drupal installation from shell! SO COOL! This completely eliminated the need to have 3rd party code in our repositories and it made (at least) my life a whole lot more worry free.So as it happened, we quickly adopted the script in our workflow and everyone was happy with it. Time went on and we found the script lacking and started modifying it, improving it, and finally after a couple of rewrites we ended up with build.sh.Things it does for you:
- download and install Drupal
- update Drupal core and modules
- copy & link custom code directories and/or files
- handle separate settings.php for each environment
- take backups
Our continuously evolving workflow is:
- Grab a copy of build.sh
- Modify conf/site.make to our liking
- Enable contrib & custom modules as a dependency in code/profiles/wk/wk.info
- Run ./build.sh new
If things go well this should result in a folder called drupal, this is where your fresh installation is.Next, we might want to update the version of Drupal core.
- Bump up the version of Drupal core in conf/site.make
- Run ./build.sh update
But wait - theres more! Build.sh allows you to define your own commands that do whatever you want. Have a look at the README.md for further information.https://github.com/wunderkraut/build.sh