git flow:制作的工作流;“释放候选人”QA web工件
我们正在使用git flow:制作的工作流;“释放候选人”QA web工件,git,maven,branch,git-flow,branching-strategy,Git,Maven,Branch,Git Flow,Branching Strategy,我们正在使用git-flow分支模型开发几个由web工件组成的项目 参考: 我们正在使用developebranch和jenkins自动构建和部署SNAPSHOTweb工件来测试环境 我们手动运行git-flow-release-start和git-flow-release-finish来构建非快照工件,这些工件被部署到我们的工件工厂,并最终部署到prod中 (如何运行git flow xxx命令?下面是一个示例) 我的问题:QA的工作流程应该如何工作 鉴于: 我们不想将快照部署到QA 如果我们
git-flow
分支模型开发几个由web工件组成的项目
参考:
我们正在使用develope
branch和jenkins
自动构建和部署SNAPSHOT
web工件来测试环境
我们手动运行git-flow-release-start
和git-flow-release-finish
来构建非快照工件,这些工件被部署到我们的工件工厂,并最终部署到prod中
(如何运行git flow xxx
命令?下面是一个示例)
我的问题:QA的工作流程应该如何工作
鉴于:
git-flow
脚本和分支模型release/1.1
)QA
中进行测试release/1.1
分支中进行更改,必要时返回步骤2finish
release(合并到master中)2
?发布分支中的工件应该如何唯一标识
我们正在考虑使用发布候选版本控制,其中maven版本
1.1.RC1
表示release-candidate1
,后面是1.1.RC2
,最后是1.1
(最终版本)。我认为使用限定符是有意义的,由于Maven将始终考虑具有限定符<代码> 1.1的版本。RC-1 < /代码>比没有限定符的版本<代码> 1.1 < /代码>。
请注意,
SNAPSHOT
限定符是特殊的,因此maven(可能还有Artifactory)将其与其他限定符区别对待。Maven将其视为增量构建,而其他限定符则不然。这意味着,如果您不想使用快照
限定符,您可能必须为发布分支中的每个提交设置一个新版本。我遇到了同样的问题,并扩展到包括代表测试、QA和PRD环境的分支
我选择让MASTER默认指向QA中的最后一个版本,而不是让MASTER包含生产中的最后一个代码。然后,部署到PRD只是将已经在QA上的候选版本升级到PRD
您现在可以在QA上对版本进行热修复,这可能会比对生产版本进行热修复发生得更多。通过将主分支重置为要修复的生产版本,仍然可以对生产进行热修复
好问题,我们也想做同样的事情。这是我们想到的。与@crea1类似,添加了一个新的限定符(补丁号)。现在,它可以是来自发布分支的单独发布的工件 实际上,它与您的建议没有太大区别:
在我看来,这应该包括在gitflow模型中,这是一个发布候选选项。是的,我明白你的观点。你只需要善于管理你的版本。可能在主分支中使用1.0,在通过QA-1.0.X推送发布时使用1.0.1,最终在prod中使用。