TFS Release Management 与最后的构建部署任务

TFS Release Management vs build deploy task at the end

我有几个应用程序,一些是通过 ClickOnce 发布的 WinForms 和一些我们使用 vNext 构建脚本构建的网站,如果所有构建和单元测试都通过,则作为这些构建脚本的最后一步进行部署。每个应用程序都有两个分支,一个将构建并部署到暂存区,另一个将部署到生产区。

使用 TFS 中新的发布管理功能,我假设我要将部署任务从构建定义移动到发布区域。但除了批准按钮之外,这能给我带来什么?

嗯,这取决于...

如果您正在实践持续交付,那么您有一个直接部署到生产环境的分支。然而,许多人希望先部署到暂存环境,在那里试一试,然后再部署到生产环境。

但是,使用分支来执行此操作是错误的。这是一个重要的反模式,可能会导致生产中的错误无法被暂存检测到。其中大部分是由于合并,但由于编译器不确定,您在暂存中测试的内容与您在生产中部署的内容不同。

您应该更改您的模型,使相同的构建输出流通过不同的生产阶段。这些阶段越少越好,最好是一个。

在现代发布流程中,您总是 "work" 在单个分支上,然后从该分支构建。当您有一个要推广的构建时,您可以创建一个版本来跟踪该构建从不同阶段到生产的进度,而无需重新编译。