Day 36 of 40
CI/CD Pipelines
Production and non-production pipelines, and the quality gates
By the end of today you should be able to
- Distinguish production from non-production pipelines and their triggers
- Name the quality gates and explain the three-tier failure model
- Explain what a config pipeline deploys and why it is separate
- Read a failed pipeline and know where to look
Two families of pipeline
- Production pipeline — deploys to stage, runs the gates, then promotes to production. Exactly one per program. Requires approval to reach production if configured.
- Non-production pipeline — either deploys to a development environment, or is a code-quality-only pipeline that builds and analyses without deploying anywhere. You can have several.
A code-quality-only pipeline on your main branch is one of the cheapest wins available: every merge gets analysed, so gate failures surface long before a release.
Triggers:
- Manual — someone presses Run.
- On Git changes — commits to the configured branch start the pipeline.
- Scheduled — for regular validation.
The stages of a production pipeline
- Validation — checks the pipeline configuration and repository.
- Build and unit testing — Maven build with your unit tests.
- Code scanning — SonarQube analysis against Adobe's rule set.
- Build images — package the deployable artefacts.
- Deploy to stage.
- Functional testing — product functional tests, your custom functional tests, and UI tests if configured.
- Experience audit — Lighthouse-style performance, accessibility, SEO and best-practice checks on nominated pages.
- Approval — if configured, a human gate.
- Deploy to production, with a managed rollout.
The three-tier gate model
Every gate finding has a severity, and the model is the same across gates:
- Critical failure — the pipeline stops. No override.
- Important failure — the pipeline pauses and an authorised user (Business Owner or Deployment Manager) may override with a justification, which is recorded.
- Info — advisory, does not block.
An important-failure override is attributed to a named person with a reason. It exists so a genuine emergency is not blocked by an imperfect rule — not so a team can routinely wave findings through. A pattern of overrides is a signal worth noticing.
The gates themselves:
- Code quality — Sonar findings plus test coverage against a threshold (commonly 50% line coverage).
- Security testing — configuration and code security checks.
- Performance testing — load testing against stage.
- Experience audit — page-level quality metrics.
Config pipelines
Some configuration is deployed separately from code, through a
config pipeline targeting files under a top-level config
folder:
- CDN traffic filter and WAF rules (
cdn.yaml) — day 39. - CDN redirects, purge configuration and request transformations.
- Log forwarding.
They are separate because they change independently of application code and must be deployable quickly — you do not want to run a full production pipeline to add a WAF rule during an incident.
Reading a failure
- Which step failed? The pipeline UI names it, which narrows the cause immediately.
- Build failure — download the build log. Usually a compile error, a failing test, or a dependency that resolves locally but not in the pipeline.
- Code quality — open the detailed results to see whether it is coverage or specific findings.
- Deployment failure — check package install errors, often a filter or repository structure problem.
- Functional test failure — the test report identifies the case; reproduce it on stage.
The pipeline builds from a clean checkout with no access to your local Maven repository. A dependency that only exists in your ~/.m2 — a locally installed artefact, or one from a repository your settings.xml knows about — builds fine for you and fails in the pipeline. It is a common and confusing first failure.
Production goes through stage and the gates; non-production covers dev and code-quality-only checks; config pipelines deploy CDN and log configuration separately; and overrides are attributable records.
Watch
Adobe's own videos for this topic. They load only when you press play.
Read on Experience League
The primary sources these notes are drawn from.
Your notes
Saved automatically to this browser.
Check yourself
10 questions on today's material. 80% to pass.