---
title: "CI/CD pipeline architecture | Grafana Labs"
description: "How the pieces fit together in a CI/CD pipeline"
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

## CI/CD pipeline flow

This diagram shows the end-to-end pipeline from code commit to deployed dashboard.

## What each stage does

The pipeline has three stages, each triggered at a different point in the workflow.

| Stage        | Trigger            | Action                               |
|--------------|--------------------|--------------------------------------|
| **Generate** | Every push         | Run SDK code, produce dashboard JSON |
| **Plan**     | Every push         | Show what Terraform will change      |
| **Apply**    | Merge to main only | Deploy changes to Grafana            |

## When each path runs

The same stages run along two paths, depending on where the code is in the workflow:

- **On a pull request**: the pipeline runs generate and plan, then posts the plan as a PR comment for review. Nothing is deployed yet.
- **On merge to main**: the pipeline runs all three stages. Generate produces the latest JSON and Terraform applies it, so the dashboard in Grafana always reflects the latest code on main.

## The review gate

The Terraform plan output is posted as a PR comment so you can see:

- Which dashboards will be created, updated, or destroyed
- Exactly what configuration will change

This gives you the full benefits of dashboards as code: every change is reviewed, every deployment is automated, and you can trace any dashboard back to the commit that produced it.
