CONTRIBUTING.md: Replace staging workflow diagram

Can't be rendered in GitHub markdown, replacing it with a Git branch diagram using mermaid
This commit is contained in:
Silvan Mosberger 2023-08-04 22:49:53 +02:00
parent aace54f1aa
commit 7ab012c60c

View file

@ -157,30 +157,52 @@ branch allows the Hydra operators to batch groups of commits to
separate from `staging`, this batching does not block separate from `staging`, this batching does not block
developers from merging changes into `staging`. developers from merging changes into `staging`.
```{.graphviz caption="Staging workflow"} ```mermaid
digraph { %%{init: {
master [color="green" fontcolor=green] 'theme': 'base',
"staging-next" [color="green" fontcolor=green] 'themeVariables': {
staging [color="red" fontcolor=red] 'gitInv0': '#ff0000',
'gitInv1': '#ff0000',
'git2': '#ff4444',
'commitLabelFontSize': '15px'
},
'gitGraph': {
'showCommitLabel':true,
'mainBranchName': 'master',
'rotateCommitLabel': true
}
} }%%
gitGraph
commit id:" "
branch staging-next
branch staging
"small changes" [fontcolor=green shape=none] checkout master
"small changes" -> master [color=green] checkout staging
checkout master
commit id:" "
checkout staging-next
merge master id:"automatic"
checkout staging
merge staging-next id:"automatic "
"mass-rebuilds and other large changes" [fontcolor=red shape=none] checkout staging-next
"mass-rebuilds and other large changes" -> staging [color=red] merge staging type:HIGHLIGHT id:"manual"
commit id:"fixup"
"critical security fixes" [fontcolor=green shape=none] checkout master
"critical security fixes" -> master [color=green] checkout staging
checkout master
commit id:" "
checkout staging-next
merge master id:"automatic "
checkout staging
merge staging-next id:"automatic "
"staging fixes which do not cause staging to mass-rebuild" [fontcolor=green shape=none] checkout staging-next
"staging fixes which do not cause staging to mass-rebuild" -> "staging-next" [color=green] commit id:"fixup "
checkout master
"staging-next" -> master [color="red"] [label="manual merge"] [fontcolor="red"] merge staging-next type:HIGHLIGHT id:"manual (PR)"
"staging" -> "staging-next" [color="red"] [label="manual merge"] [fontcolor="red"]
master -> "staging-next" [color="green"] [label="automatic merge (GitHub Action)"] [fontcolor="green"]
"staging-next" -> staging [color="green"] [label="automatic merge (GitHub Action)"] [fontcolor="green"]
}
``` ```
[This GitHub Action](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/periodic-merge-6h.yml) brings changes from `master` to `staging-next` and from `staging-next` to `staging` every 6 hours; these are the green arrows in the diagram above. The red arrows in the diagram above are done manually and much less frequently. You can get an idea of how often these merges occur by looking at the git history. [This GitHub Action](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/periodic-merge-6h.yml) brings changes from `master` to `staging-next` and from `staging-next` to `staging` every 6 hours; these are the green arrows in the diagram above. The red arrows in the diagram above are done manually and much less frequently. You can get an idea of how often these merges occur by looking at the git history.