Continuous Integration has never been so easy

Andrew Berry

Do you want to run tests, check code coverage, check coding standards, and generate coverage reports every time someone in your team pushes code changes? In this session, we will show you a set of tools to implement Continuous Integration to your development workflow, and to make the business case for Continuous Integration (CI) to non-technical stakeholders.

In the past few years, we have participated in the implementation of Continuous Integration of every project that we have worked on. Once implemented, we found the metrics it generated added transparency and trust in the team’s work. However, it was always tedious to set up and customize for each team. Furthermore, it required constant monitoring, tuning, and maintenance.

With the appearance of Docker and SaaS products like CircleCI and Travis CI, implementing CI has become much easier and flexible to implement. We sought different, more efficient ways to set up and maintain a foundation that future teams could add quickly to their workflow and build upon. This foundation runs the following checks on a given pull request:

Runs PHPUnit and Kernel tests.
Generates a code coverage report.
Checks Drupal’s coding standards and best practices.
Updates the database, synchronizes configuration and runs Behat tests with a real web browser like Chrome.
In this session we will evaluate three CI architectures to accomplish the above:

Jenkins, using Docker to spin up and tear down environments in jobs.
CircleCI, via a single-command installer.
Travis, via a single-command installer.
We will also provide details on the cost savings we realized with a client by migrating build and test servers to a SaaS platform from a custom, internal implementation.

Attendees should have some experience working with Drupal projects.

Have a look at the following links for further details on what we will cover:

Continuous Integration for Drupal 8 with CircleCI
One-line installer for CircleCI and Travis
Session slides



Andrew Berry
Senior Technical Architect, Guelph, @deviantintegral
Andrew Berry is a architect and developer who works at the intersection of business and technology. His journey with Drupal and PHP started with a student website that needed to change a sentence in the site footer. His contributions as deviantintegral on drupal.org include several modules, patches to Drupal core, and online support. Since joining Lullabot, he's helped design and build products for clients including NBC Digital, The Recording Academy, and Turner Broadcasting. Andrew has a Masters in Computer Science from the University of Guelph. While researching there, he specialized in Human Computer Interaction and online security. His research interests include perceptions of privacy online, as well as visualization of security and privacy threats. He lives in Guelph with his wife Julia, two daughters, and their cat, Pixel.

https://drupalnorth.org/en/session/continuous-integration-has-never-been-so-easy

Drupal is a registered trademark of Dries Buytaert.