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 flowscripts 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.1branch and return to step 2 as necessary - When testing is complete,
finishthe 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).
