Visual Studio的发布管理 - 管道如何与DEV/QA/Production Branches一起使用?

use*_*445 2 tfs release-management visual-studio ms-release-management

我们为每个环境(DEV/QA/PROD)设置了单独的TFS 2012分支机构.

更改将签入DEV分支,该分支触发通过RM将Visual Studio 2013 Update 4发布到DEV服务器.

当前发布模板选择了DEV分支的Build Definition,但是在移动到下一阶段时我们需要切换到QA/PROD分支.

我们是否需要为每个阶段创建单独的模板,而不是使用包含所有阶段的单个模板?

Dan*_*ann 8

RM建立在二元推广的基础上,而不是每个阶段的分支.我们的想法是让组二进制文件从一个阶段升级到另一个阶段.这使得发布过程更快(没有发生无关的构建)并减少您的QA时间 - 如果您在QA中测试代码的功能,然后重建生产,您将未经测试的二进制文件发布到生产中.它还有助于重复性.如果QA和Prod之间的发布失败,并且每个环境分支模型,您可能会对"为什么在一个环境中工作而不在另一个环境中工作?"这个问题有额外的答案.这个问题的唯一答案应该是"因为环境存在问题".它永远不应该"因为我们拙劣合并".

您应该重新评估分支策略,以便构建和释放一个分支,而不是依赖多个分支中的多个构建.

也就是说,如果你现在不能搞乱你的分支策略,那么为每个分支创建单独的发布路径和模板的方法将是解决它的最佳方法.

我通常做这样的事情,假设DEV - > QA - > PROD:

Dev分支进入开发环境.QA分支进入QA环境.Prod分支进入质量保证环境,然后进行生产.

这使得开发人员可以在前一版本稳定的同时继续开发新功能.如果采取这种方法,你会很快意识到,QA分支是多余的 - 你建立发布,然后测试你打算释放的东西.

一旦你打这一点上,它是要意识到它最好把开发分支短暂的,依靠新的功能经常合并从开发到躯干短路径.长时间运行未准备好用于公共消费的背后能功能标志被隔离的变化,所以你可以继续推出更小的变化是功能完整,而运行时间更长的开发工作仍在进行测试.