Achieve a high-speed, reliable Drupal CI/CD pipeline in Azure DevOps with a "Locked Box" Docker strategy. This article details a two-pipeline "Factory & Assembly Line" approach to solve common performance and stability problems. Learn to optimize Docker image handling, implement robust Docker-in-Docker networking for integration tests, and correctly configure PR validation builds using branch policies. This guide provides complete YAML templates for building, testing, and deploying to Acquia, resulting in a fast, stable, and maintainable workflow.
Introduction: The Quest for the Perfect Pipeline
In the world of CI/CD, the "perfect pipeline" is a balance of two opposing forces: reliability and speed. For a complex application like Drupal, this is a serious challenge.
- A reliable pipeline must run the exact same way every time, regardless of the agent it runs on. It needs a specific PHP version, exact extensions, and tools like
mysql-clientandacquia-cli. - A fast pipeline must give developers feedback in minutes, not hours.
The most common mistake is to sacrifice reliability for speed (by installing tools on a generic agent) or to sacrifice speed for reliability (by building a huge Docker image on every single commit).
This guide details a "best of both worlds" architecture that solves this problem. We'll use a "Locked Box" (a custom Docker image) to guarantee reliability, but we'll split our workflow into a "Factory" and an "Assembly Line" to achieve high-speed performance.