I had the pleasure of talking about Drupal and Continuous Integration with Mike Anello, Ted Bowman, and Ryan Price over at DrupalEasy. During that conversation, I maintained that the barrier of entry is now low enough that there is now no excuse for not implementing a continuous integration workflow.
To prove it, I created the No Excuses series. In five parts, I walk through the basics to get a CI workflow setup for your Drupal process.
In this series, I share how to establish a known-state (via ansible and vagrant), how to make your project build explicit and executable (via bash), how to add testing to define and verify a feature's completion (via behat), how to automate the build and the tests with a CI server (via CircleCI), and finally, how to automate the deployment.
- Part I: Drupal-optomized Environment Config with (Ph)Ansible and Vagrant
- Part II: Making your Drupal Build explicit and executable
- Part III: Build drupal with Composer
- Part IV: System testing Drupal with a BDD tool (Behat)
- Part V: Automated Deployment
The series was written to be followed in order but you could, of course, take from it what is most immediately applicable to you.
This series is meant to be the first iteration: the quickest way that I could come up with to get these tools in your hands so that you can start doing what you know you should be doing. I have vague plans to follow-up with an iteration two, where I go back and improve upon everything we have done here, but my experience has also shown me that once developers have the tools and know how to use them, they can improve upon their usage easily themselves.
UPDATE Jeff Geerling is offering a coupon for 50% off the recommended price for his recently published book Ansible for DevOps: Server and Configuration Management for Humans to readers of this series who want to learn more about Ansible. If I do my job right, that will be everyone.