We are developing several projects that consist of web artifacts, using the git-flow
branching model.
Refer to: Vincent Driessen's git flow branching model
We are using develop
branch and jenkins
to auto build and deploy SNAPSHOT
web artifacts to test environment.
We manually run git flow release start
and git flow release finish
to build non-snapshot artifacts which are deployed to our artifactory and deployed eventually in prod.
(How to run git flow xxx
commands? Here's a cheatsheet)
My question: How should the workflow for QA work?
Given that:
- We don't want to deploy snapshots to QA
- It's nice if the same artifact we tested in QA is deployed in PROD
- We can use
git flow
scripts and branching model as closely as possible
Looking at the branching model, my own best understanding is:
- Make a release branch (e.g.
release/1.1
). - Build artifacts from the release branch and test in
QA
. - Make changes in
release/1.1
branch and return to step 2 as necessary - When testing is complete,
finish
the release (merge into master) - Deploy artifact in prod.
Does anyone have any experience with this, especially step 2
? How should artifacts from the release branch be uniquely identified?
We are considering using a release candidate versioning, where maven version 1.1.RC1
indicates release-candidate1
, following by 1.1.RC2
, and finally 1.1
(final version).