基于先前的构建在 TFS 中执行构建

Posted

技术标签:

【中文标题】基于先前的构建在 TFS 中执行构建【英文标题】:Execute a build in TFS based on a previous build 【发布时间】:2012-06-08 16:16:27 【问题描述】:

我们使用 TFS 来遵循非常标准的敏捷构建过程:

    Nightly 使用最新源代码构建 每 2 周构建到登台服务器 每 4 周构建到生产服务器

我在 TFS 中设置了 1 和 2,并且运行良好。但是,我在#3 上有点挣扎。如果我只是设置一个“正常”构建,它将提取最新的源代码并使用它来推送到生产服务器。但我真正想要的是将代码从第 2 步移到生产服务器,因为它已经过 QA 团队的审查。

我想过做一个使用 XCopy 或类似的东西的自定义构建模板,但问题是如何更新配置字符串。

我一直在关注这篇文章,这似乎正是我想要的,http://www.asp.net/web-forms/tutorials/deployment/configuring-team-foundation-server-for-web-deployment/deploying-a-specific-build,但它不起作用。

你们都是怎么做到的?

【问题讨论】:

您对持续集成的描述似乎不对。每次签入都会进行持续集成构建。如果某一天没有任何签入,则当天不会有任何构建。 感谢您的评论 - 我已经更新了我的措辞以更清晰。 【参考方案1】:

所以这是实现 3 的一种稍微简单的方法。如果你已经实现了 2。

让您的生产构建定义保持原样。但是,要编译与步骤 2 中用于编译暂存构建的相同变更集(现已由 QA 审查),当您将产品构建排队时,然后在参数选项卡上展开高级部分并找到“获取版本”属性如下图。

在这里,您可以指定用于在步骤 2 中构建您的构建的相同 TFS 变更集。假设此变更集是编号 84,您将编写(准确)

C84

如果你编译标签,那么你指定一个名为“For build xyz”的标签

LFor 构建 xyz

请注意,上面的“C”和“L”是故意的。

希望这会有所帮助。

【讨论】:

【参考方案2】:

我们有一个不同的生产分支,代码只有在通过问答后才会合并到生产分支中。

这使我们可以在生产分支上直接对生产代码进行热修复(这些更改最终将反向集成到 main 然后 dev 中),同时在开发分支上继续开发。

一旦开发分支中的代码准备好进行问答,它就会被合并到主干中。

CI 和夜间构建在开发分支上完成 - 不同之处在于夜间构建具有更全面的自动化测试

【讨论】:

谢谢,这也很有帮助!

以上是关于基于先前的构建在 TFS 中执行构建的主要内容,如果未能解决你的问题,请参考以下文章

TFS 构建未显示测试结果摘要

当 TFS 为构建克隆 git 存储库时出现 AppDomainUnloadedException

TFS Build 不断抛出“无法执行获取操作,因为该文件已在本地存在”错误

TFS Online Git - CI基于特定文件夹签入

TFS中的Robocopy构建PowerShell步骤报告失败但没有错误

如何在 TFS Linux 代理中下载工件?