From commit to release: the quality gate
The release flow with one decision emphasized and the way through the quality gate drawn in the accent: the outline and the line are heavier than anything else, so the cue does not rest on color, and the rest stays neutral. A legend strip below the drawing names the node kinds, the line patterns and the emphasis. The description names what is emphasized.
From commit to release: the quality gate
examples/release-focus.json{
"schemaVersion": 1,
"type": "flow",
"title": "From commit to release: the quality gate",
"source": "Team handbook, release process",
"width": 1120,
"height": 1064,
"flow": {
"lanes": [
{
"id": "dev",
"label": "Development"
},
{
"id": "ci",
"label": "Continuous integration"
},
{
"id": "ops",
"label": "Operations"
}
],
"nodes": [
{
"id": "commit",
"label": "Commit pushed",
"kind": "start",
"lane": "dev"
},
{
"id": "review",
"label": "Code review",
"lane": "dev"
},
{
"id": "build",
"label": "Build",
"sublabel": "locked inputs",
"lane": "ci"
},
{
"id": "tests",
"label": "Run tests",
"lane": "ci"
},
{
"id": "green",
"label": "All green?",
"kind": "decision",
"lane": "ci"
},
{
"id": "fix",
"label": "Fix failures",
"lane": "dev"
},
{
"id": "staging",
"label": "Deploy to staging",
"lane": "ops"
},
{
"id": "approve",
"label": "Approved?",
"kind": "decision",
"lane": "ops"
},
{
"id": "prod",
"label": "Deploy to production",
"lane": "ops"
},
{
"id": "done",
"label": "Released",
"kind": "end",
"lane": "ops"
}
],
"edges": [
{
"from": "commit",
"to": "review"
},
{
"from": "review",
"to": "build",
"label": "merged"
},
{
"from": "build",
"to": "tests"
},
{
"from": "tests",
"to": "green"
},
{
"from": "green",
"to": "staging",
"label": "yes"
},
{
"from": "green",
"to": "fix",
"label": "no"
},
{
"from": "fix",
"to": "build",
"label": "retry"
},
{
"from": "staging",
"to": "approve"
},
{
"from": "approve",
"to": "prod",
"label": "yes"
},
{
"from": "approve",
"to": "review",
"label": "changes requested",
"dash": "dashed"
},
{
"from": "prod",
"to": "done"
}
],
"groups": [
{
"label": "Quality gates",
"nodes": [
"build",
"tests",
"green"
]
}
],
"mainPath": [
"commit",
"review",
"build",
"tests",
"green",
"staging",
"approve",
"prod",
"done"
]
},
"emphasis": {
"nodes": [
"green"
],
"path": [
"build",
"tests",
"green",
"staging"
]
},
"legend": "auto",
"mobile": {
"width": 584,
"height": 1500
}
}Focus
Source: Team handbook, release process
Show chart data
| Step | Kind | Lane | Group | Leads to | Emphasis |
|---|---|---|---|---|---|
| Commit pushed | start | Development | Code review | ||
| Code review | step | Development | Build (merged) | ||
| Build | step | Continuous integration | Quality gates | Run tests | on emphasized path |
| Run tests | step | Continuous integration | Quality gates | All green? | on emphasized path |
| All green? | decision | Continuous integration | Quality gates | Deploy to staging (yes), Fix failures (no) | emphasized, on emphasized path |
| Fix failures | step | Development | Build (retry) | ||
| Deploy to staging | step | Operations | Approved? | on emphasized path | |
| Approved? | decision | Operations | Deploy to production (yes), Code review (changes requested) | ||
| Deploy to production | step | Operations | Released | ||
| Released | end | Operations |