From commit to release
Ten steps in three lanes, laid out by chartlet from nothing but the connections: the main path runs straight in the accent color, two loops back — a retry and a request for changes — are drawn against the flow, and a group frames the quality gates. The description and the table follow the steps in reading order.
From commit to release
examples/release-flow.json{
"schemaVersion": 1,
"type": "flow",
"title": "From commit to release",
"source": "Team handbook, release process",
"width": 1120,
"height": 1020,
"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"
]
}
}Focus
Source: Team handbook, release process
Show chart data
| Step | Kind | Lane | Group | Leads to |
|---|---|---|---|---|
| Commit pushed | start | Development | Code review | |
| Code review | step | Development | Build (merged) | |
| Build | step | Continuous integration | Quality gates | Run tests |
| Run tests | step | Continuous integration | Quality gates | All green? |
| All green? | decision | Continuous integration | Quality gates | Deploy to staging (yes), Fix failures (no) |
| Fix failures | step | Development | Build (retry) | |
| Deploy to staging | step | Operations | Approved? | |
| Approved? | decision | Operations | Deploy to production (yes), Code review (changes requested) | |
| Deploy to production | step | Operations | Released | |
| Released | end | Operations |