We are trying to incorporate the team build concept in a team. I do not know exactly what's the professional name it has but the scenario would be self-explanatory what we want to achieve. I've tried searching it on the portal but could not find anything relevant.
Currently, we take the following approach to move our feature from local to master.
- We create the feature branch from the master.
- Implement the feature and push the changes to master as a merge request.
The problem with this approach is if there are any compatibility/merge issues with the code which is overlooked at the time of merging ultimately creates issues at the time of building or deployment; affecting the number of teams who are waiting to work/test on the latest code on the environment.
So we wanted to isolate the developers from directly merging their feature branch changes into master and came up with the concept of integration branch for the sprint. With the integration branch, we would build and deploy that integration branch code to our team servers and do all the testing there. Thus, all the problems with the merging or any code compatibility issues would be catered at the team build level without impacting the environment.
All being said, I have some confusion regarding the feature branches that we would be creating.
- On sprint start, I am creating and pushing the integration branch from master and on subsequent days I am rebasing the integration branch from the master. We are deploying this branch to our team servers.
- After picking the feature to work we are creating the feature branch from the master, implementing the feature there and then when a feature is completed cherry-picking that commit to the integration branch.
- Once the testing is completed on team servers we are creating the merge request from the feature branch to be merged on the master.
Is this model correct or are we missing something?
Thanks