I was inspired by Dries Buytaert's recent blog ‘The evolution of Drupal's composability: from the command line to the browser’, I wanted to break down this statement “explore how Drupal's composability is evolving to empower ambitious site builders with modern, no-code development practices.” to find other ways to make my projects more composible.
Composability is a design principle that allows systems to be assembled from smaller, independent components. This makes it easier to create new systems by combining existing components.
Code Studio adds another layer to the concept of composability on Acquia’s full stack Drupal development platform. Based on Gitlab, Code Studio is a fully managed CI/CD pipeline optimized for Drupal that enables your teams to plan, build, test, review, and deploy from a single, customizable workflow that integrates with Acquia Cloud or Site Factory Platforms. Just by adding a .gitlab-ci.yml file and changing one setting to customize Acquia's out-of-the-box workflow / build-process. They make it easy to customize and add your own steps, jobs or tasks to your projects build process.
Using this concept, you can separate all your projects into different Code Studio projects with their own git repositories / history, their own customized build process, running their own tests in the CI and then triggering a release. This should save time, give move flexibility on who has access to what and add major value to the overall DevOps architecture.
In this example, we’ll use a simple custom drupal module and the concept of adding an external module to your site or many sites.
The idea would be that when you update your Drupal custom module code, that should trigger any Drupal Code project you have defined to build, pull in the latest version of your module defined in your composer file and release the new version to the Cloud.
Using the steps above as a concept, the sky's the limit. Replace the custom module with a component library, a whole drupal distribution or multiple Site Factory external themes.