Search code examples
gitjenkinsgit-flowcontinuous-deliveryautodeploy

git flow branching model... how does 'qa' branch fit in, with jenkins auto deploy?


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.


Solution

  • 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)