We are using Vincent Driessen's git flow branching model, which is working well.
All projects build through CI (jenkins) and auto-deploy from develop
branch to test servers (web applications, java applications, and so on).
Now, we want to set up deploy to a QA environment, and we have experimented with creating a qa
branch for some of the applications, and corresponding jenkins builds which build off qa
branch and deploy to QA servers.
Now, is this an acceptable approach, to set it up like this and merge
or rebase
into qa
branch to trigger auto deploy?
Since in the past I have only used branches for features
, releases
and hotfixes
(not "environments" like test, qa, stage) and scripts to deploy, e.g. deploy_to_qa.sh myapp 1.2.3
.
Going forward we also want to deploy to Stage and Prod environments, and implement continuous delivery.
Looking at, using, and developing, the model I would interpret it as follows:
QA can be done from the release branch. If QA find things wrong you can develop on the release branch and when QA gives the OK for a release you finish the release and it gets merged into develop.
QA can also be done from a hotfix branch.
Again, that's just my interpretation of the model.
Full disclosure: I'm the maintainer of git-flow (AVH Edition)