Working on a system with three Web servers (dev, staging and master) whose code does not need to be exactly the same and searching for an SCM flow allowing CD of several repositories (one per component and with, possibly, concurrent features)
I think there is not an standard flow matching this scenario so I ask here for a starting point to design a good solution for this, i think, good problem
My first aproach (not canonical at all) to be cryticized:
- Each repository having one branch for each server
- Features are created from the "master" branch (unless it's code is speficic of staging/dev)
- Once locally tested they are merged (==> deployed in CD) into "dev" and manually QA tested
- If all is ok, they are merged into "staging" and manually QA tested
- If all is ok, they are merged into "master" (time to pray)
Rules:
- If a branch is created from "staging" it can not be merged with "master"
- If a branch is created from "dev" it can not be merged with "staging" or "master"
- Features are required to be merged and tested in the previous environments. Hotfixes are not
- Merged code needs to pass UT/IT to be deployed