基于先前的构建在 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 为构建克隆 git 存储库时出现 AppDomainUnloadedException
TFS Build 不断抛出“无法执行获取操作,因为该文件已在本地存在”错误