chartletv0.21.0chartlet.casoon.de

← All examples

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
From commit to release
From commit to releaseFlow chart with 10 steps and 11 connections in 3 lanes: Development, Continuous integration and Operations. Main path: Commit pushed → Code review → Build → Run tests → All green? → Deploy to staging → Approved? → Deploy to production → Released. Loop: Code review → Build → Run tests → All green? → Deploy to staging → Approved? → Code review. Bottleneck: Approved?; without it the diagram falls apart. Commit pushed (start) in Development: leads to Code review. Code review in Development: leads to Build (merged). Build in Continuous integration: leads to Run tests. Run tests in Continuous integration: leads to All green?. All green? (decision) in Continuous integration: leads to Deploy to staging (yes) and Fix failures (no). Fix failures in Development: leads to Build (retry). Deploy to staging in Operations: leads to Approved?. Approved? (decision) in Operations: leads to Deploy to production (yes) and Code review (changes requested). Deploy to production in Operations: leads to Released. Released (end) in Operations: no further step. Group "Quality gates": Build, Run tests, All green?.DevelopmentContinuous integrationOperationsQuality gatesCommit pushed → Code reviewCode review → Build: mergedBuild → Run testsRun tests → All green?All green? → Deploy to staging: yesAll green? → Fix failures: noFix failures → Build: retryDeploy to staging → Approved?Approved? → Deploy to production: yesApproved? → Code review: changes requestedDeploy to production → Releasedmergedyesnoretryyeschanges requestedCommit pushedCommit pushedCode reviewCode reviewBuild – locked inputsBuildlocked inputsRun testsRun testsAll green?All green?Fix failuresFix failuresDeploy to stagingDeploy to stagingApproved?Approved?Deploy to productionDeploy to productionReleasedReleased

Source: Team handbook, release process

Show chart data
Data for From commit to release
StepKindLaneGroupLeads to
Commit pushedstartDevelopmentCode review
Code reviewstepDevelopmentBuild (merged)
BuildstepContinuous integrationQuality gatesRun tests
Run testsstepContinuous integrationQuality gatesAll green?
All green?decisionContinuous integrationQuality gatesDeploy to staging (yes), Fix failures (no)
Fix failuresstepDevelopmentBuild (retry)
Deploy to stagingstepOperationsApproved?
Approved?decisionOperationsDeploy to production (yes), Code review (changes requested)
Deploy to productionstepOperationsReleased
ReleasedendOperations
  • Flow chart (lanes)
  • Explain a process across teams