An open-source GIT/CI workflow involving Github, GitLab, DevShop, and BOA

Amstercad

We don't need no stinkin' budget; here's an open-source recipe for a Continuous Integration workflow.

This involves pulling a read-only GIT repository of someone else's Drupal Distribution hosted on GitHub for example, to a locally hosted repository maintained on a GitLab server, incorporating everyone's unique requirements and changes as time passses. Once changes are committed and pushed to GitLab,  DevShop/Aegir is automatically updated via webhooks it subscribes to. Furthermore, GitLab CI uses drush rsync and drush sql-sync to push the site from Development to Staging on the Barracuda, Octopus, Aegir (BOA) server used for public hosting.

Ultimately, every GIT commit generates a new Platform on BOA/Aegir, and GitLab CI kicks off Casper.JS or PHPunit for testing on the actual Production server, prior to going live. Of course all previous Platforms and website versions are retained using this method, just in case.

When I say this is an open-source Continuous Integration recipe, I really mean it. With DrupalCon's help regarding their presentation operating system compatibility requirements, I'll only be using my dirt-cheap Ubuntu notebook-workstation with a Gnome3 user-interface. In other words, I use the same Debian-based operating system on the Desktop as is used for the GitLab, staging, and public-facing Drupal servers on the internet. See how we develop with Ubuntu on the Desktop, managing Drupal all the way to a Live Production site using a Continuous Intgration process. See our free, open-source tools and their user-interfaces for working with Drupal every day.

Session Track

DevOps

Experience Level

Intermediate

Drupal Version