We have someone (let's call him Ted) that is responsible for testing new features and bug fixes.
We're using git(hub).
master should be/is always deployable and
development is where we commit/merge new features or bug fixes, but only after they have been tested by Ted.
The project is in PHP.
I'd like the testing process to go like this:
- A developer wants to work on a new feature (let's say the feature/bug #123 as Ted documented in the issue tracker), so he pulls
developmenton his local repo and creates a new branch (let's say
issue-123) from there.
- Once he's happy with his work, he commits and pushes his new branch to
- Ted connects to
test.ourproject.com/choose-branchand sees a list of the branches on
originand chooses to switch on
issue-123(it should be doable through the webpage). He then goes on
test.ourproject.com, tests the hell out of the webapp (he's really pitiless) and after some back and forth with the dev, he's happy with the feature.
- Ted tells the dev that he can merge
- Rinse and repeat.
For the third step, I could hack something that does the job (showing and switching branches from a specific page), but I feel that what I've described is a very common pattern.
So my question is: Is this a good / sustainable / maintainable workflow for branching? Can you back up your answer by citing some examples of other projects following this workflow?