We just migrated to git from svn and are trying to define a process that would help us achieve the following:
- Deployment to dev env without requiring code review.
- Have a pull request / code review process when merging into the release branch.
Environment:
- We have a team of 3 developers.
- There are 3 envs - Dev, Test and Prod.
Proposed Process:
We have 3 git branches.
- dev: Used to merge all features and deploy to Dev env.
- release: Used to merge all features and deploy to Test and Prod envs
- master: Merged from release
Developers work on individual feature branches off created off dev branch
Developers cannot test their changes locally and hence are required to move their code to Dev env to test. So they merge their changes into the dev branch when they want to test.
There are frequent such merges to dev branch from different feature branches as everyone tests out their features and fix the bugs.
A week before prod release date, developers create Pull requests to merge individual features into the Release branch for features which are ready to go live to Prod.
Their pull requests will be reviewed by peers and merged into the release branch.
After all PR are merged, the artifact is tested by QA team in Test env.
Assuming all is well this artifact will be deployed to Prod and the release branch will be merged into master. Marking end of release
I would like to get feedback on the proposed process. Also I have below concerns around this process: In point 6 of Proposed process - would developers need to rebase / merge their feature branches with release branch and again push the changes in the feature branch in order to be able to merge? And would it matter in what order the peers review each feature branch and merge into the release branch?