Is there any way to push successfully built feature branches to another branch?
I'd like to have something like that:
Git repository (Gitorious/GitHub whatever). Branches:
- master (current project's code)
- quality-assurance (branche where code waits for QA)
- feature-branches (many remote branches, where devs can develope their features)
Developer should have only read access to master and read/write to his feature branches QA read/write quality-assurance branch TeamCity - read/write master, quality-assurance, read only to feature-branches
And now I would like to have a workflow like this:
- Developer pulls code from master branch.
- Developer creates feature-branch-A.
- Developer pushes changes to remote feature-branchA
- TeamCity monitors feature branches
- TeamCity triggers build and tests on each commit.
- TeamCity pushes changes to quality-assurance branch if build was successful
- QA team checks the code (maybe runs some other tests, integrity tests)
- If QA decides that everything is OK, they push changes to master branch.
i don't know if that step with QA is necessary and maybe each feature branch after successful build and tests should be merged with master.
Firstly I would like to know: does it makes sense? I'm just starting with CI and I don't know if it will works.
Secondly, if this workflow is correct, I would like to know how to configure TeamCity to do something like that and what if there would be some kind of conflict or where something could goes wrong.
Recently I watched presentation about Git+Jenkins+Gerrit where I saw something similar, but for .NET development, I personally prefer TeamCity, but if it's much easier to do that with Jenkins, I change my mind.