Development Workflow
digraph G
graph[compound=true]; node [shape=hexagon, style="filled", fontname="Verdana", fontsize=10];
subgraph EXTERNAL node [fillcolor=lightyellow]; info [shape=underline, label="The development workflow", fillcolor=lightgrey] # person [label="Person", shape=tripleoctagon, fillcolor=lightyellow]; # SCM [label="SCM", shape=egg, fillcolor=lightpink];
subgraph FeatureDevelopment
node [fillcolor=lightblue]; dev [label="Programmer", shape=tripleoctagon, fillcolor=lightyellow]; releaser [label="Releaser", shape=tripleoctagon, fillcolor=lightyellow];
featurebranch [label="Feature ", shape=egg, fillcolor=lightpink]; masterbranch [label="Master ", shape=egg, fillcolor=lightpink]; ansiblebundle [label="Ansible ", shape=egg, fillcolor=lightpink] demobranch [label="Demo ", shape=egg, fillcolor=lightpink];
branchsync [shape=rounded]
jenks [label="Jenkins CI ", shape=circle]; democloud [label="DemoCloud Stack", fillcolor=palegreen] nexus [label="Nexus server", shape=circle]; portaladmin [label="Portaladmin ", shape=circle]; int [label="INT AEM Stack", fillcolor=palegreen];
dev -> featurebranch [label="Commit feature branch"]; featurebranch -> jenks [label="Build on change"]; nexus -> jenks [label="Supply Maven artefacts"];
releaser -> nexus [label="Cut release"]; releaser -> masterbranch [label="Cut release"];
featurebranch -> demobranch;
demobranch -> releaser [label="Merge tested changeset"]; masterbranch -> jenks [label="Build on change"]; demobranch -> jenks [label="Build on change"];
ansiblebundle -> jenks [label="Deploy demo/int"];
jenks -> portaladmin [label="Run Ansible"]; jenks -> democloud [label="Run Ansible"]; portaladmin -> int;
jenks -> branchsync -> jenks;
nexus -> portaladmin [label="Supply build artefacts"];