我一直在git中寻找一个好的分支模型,发现GitFlow将很适合我们的开发环境。但是,一个突出的问题是如何以及在哪里测试我们的版本。GitFlow:正确测试发布分支和主
发布分支听起来像是在发布之前运行所有回归测试的地方。然而,发布分支然后合并到主标记中,并且这是最终发布到生产中的。如果有从发布分支到主控的合并冲突,会发生什么?听起来像主人需要完全重新测试(这可能是昂贵的)。即使没有冲突,将合并推向生产是否安全,还是需要进行额外的基本烟雾测试?
我一直在git中寻找一个好的分支模型,发现GitFlow将很适合我们的开发环境。但是,一个突出的问题是如何以及在哪里测试我们的版本。GitFlow:正确测试发布分支和主
发布分支听起来像是在发布之前运行所有回归测试的地方。然而,发布分支然后合并到主标记中,并且这是最终发布到生产中的。如果有从发布分支到主控的合并冲突,会发生什么?听起来像主人需要完全重新测试(这可能是昂贵的)。即使没有冲突,将合并推向生产是否安全,还是需要进行额外的基本烟雾测试?
仔细追踪GitFlow图表后,我确信自己应该有永不当合并到主(即如果严格遵循过程)任何冲突。究其原因,是因为时间表的:
我简化了GitFlow图说服这个自己:回答
我认为测试应该在发布的每个阶段完成。创建一个可以直接针对生产运行的发布测试的轻子集,以至少测试基本功能。当然,不要对生产进行加载/性能测试。
根据您的产品是什么以及如何推出它,实际测试可能会发生变化。我们有几台生产服务器,我们部署了新版本的代码。这些服务器已经过彻底测试,但我们的客户无法访问。当那些退出时,我们将它们与其余的生产服务器交换出去。重复部署和测试。一切通过后,所有的生产服务器都被放回到面向客户的服务器的实时池中。
如果发生故障,我们以相同的方式回滚。
谢谢@SWPhantom。您的答案对于Web应用程序来说是有意义的,并且对于您的使用情况是正确的。我应该更清楚我的问题。我正在开发移动应用程序,所以我们实际上没有单独的dev/qa/perf/prod环境。此外,问题更多的是关于发布和主分支应如何在git-flow中进行处理,直到测试和准备为产品发布构建。 – yura