TFS 2010 和“一次构建,多次部署”

6
我对这个主题进行了大量研究,但无法找到完整的解决方案来使用TFS 2010实现“一次构建,多次部署”。
基本上,我想要的是一个构建定义,它将构建具有多个项目要部署的解决方案(Web应用程序+数据库项目+Web服务+报告),将输出放置在drop文件夹中,并从那里根据质量和版本手动决定将所有项目部署到各种环境(qa、ua、staging、production)。
我知道我可以修改构建过程模板,在构建后立即部署多个项目,类似于“构建主要内容并部署到QA”,“构建主要内容并部署到UA”等,可能是基于变更集#或标签,但这意味着每次都需要构建。 我希望更像是一个仪表板,允许部署团队在UA环境上部署已在QA中测试的确切构建,并在获得绿灯后在生产环境中部署它。当然,这意味着配置文件应该在部署时相应更新。
我还考虑定义一些构建定义,实际上不会构建任何东西,而是将现有构建(基于版本)部署到特定环境中,但至少看起来有点奇怪。
3个回答

2
这大致就是我们使用的方式,我们已经建立了模板来进行实际构建,并且有部署模板将输出部署到各种机器上(这些可以设置为按计划运行,如每晚的QA下降等,或按需求,如UAT / live)。这些模板与默认模板相比高度修改,我们只需从构建中添加详细信息(或在某些情况下,您可以获取最新的构建,例如烟雾测试环境),例如放置位置。
您需要在要部署到的机器上安装能够处理部署的代理,但您可以安装任意多个代理。
例如,您可以构建一个将应用程序构建为exe的构建,以及一个模板,它将使用InvokeProcess将exe运行在目标上。如果您需要将相同的内容部署到另一个环境中,只需使用相同的放置位置即可。
你所拥有的听起来一点也不奇怪,处理方式很合理。

好的,对我来说定义一个不构建的构建仍然看起来很奇怪,但只要我在这条路上不是孤单一人,我就会走这条路。还有一个问题,你如何选择正确/所需的构建?根据版本,在“构建发布”位置选择正确的文件夹吗? 感谢您的回答! - Iulian Ilies
我们只保留需要的构建以避免磁盘空间问题(即任何QA构建),然后将“build”构建中的下降文件夹;)传递到模板中定义的部署定义的参数中,该参数将被传递给InvokeProcess任务以在所需的代理/服务器上运行。 - Daniel Morritt

1
我知道这是一个晚回应,但自2012年以来情况已经发生了变化。微软现在有一个发布管理方案,从根本上设计用于实现“一次构建,多次部署”。修改构建流程模板总是很麻烦的。

0

Daniel的回答基本上是使用类似TeamBuild这样的构建系统来处理部署的标准方式。这感觉有点奇怪,因为你正在将一个工具弯曲到另一个目的。但它肯定可以工作。

另一种方法是获取一个纯部署工具,它与TFS / TeamBuild集成。跨环境的部署将是自然的,但是您需要管理两个工具。


我在想为什么具有自己部署模板的部署定义不是 TFS 2010 的一部分。这不应该是一个“太难添加的功能”。还需要一个管理所有内容的仪表板... - Iulian Ilies
我不会感到惊讶,如果看到这个基本版本的出现,但一旦你开始考虑生产部署风格,你就有了不同的职责分离问题,引入负载均衡器和其他基础设施组件,与其他项目的协调等等。那些东西将远离开发人员中心的TFS。 - EricMinick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接