【问题标题】:How can I deploy from the drop location given a specific build number using TFS如何使用 TFS 从给定特定内部版本号的放置位置进行部署
【发布时间】:2011-08-28 23:07:21
【问题描述】:

尝试使用 TFS 实施 CI。我的构建工作正常,项目都很好地拆分在放置文件夹中。我的问题是,我如何允许 QA 团队将部署“构建”(没有实际构建)排队,他们可以在其中提供特定的构建号。然后使用此内部版本号来部署该特定构建放置文件夹中的位。

最终目标是在队列构建对话框中为他们提供几个参数(已经完成),然后开始部署过程。我想到了使用 TFS Deployer,尝试创建自己的部署过程模板,然后从 .proj 文件执行 powershell 脚本。似乎每个选项都有其自身的复杂性。

谁能给我一些关于完成此任务的最佳方法的指导?

【问题讨论】:

  • Visual Studio 和 TFS 哪个版本?什么样的部署?
  • TFS 2010,我们正在部署 Windows 服务、Web 服务和 Web 应用程序。此外,构建服务器和登台服务器之间没有直接连接,所以一切都必须是 FTP 的。我已经完成了 PowerShell 脚本来执行此操作。

标签: tfs msbuild continuous-integration msdeploy


【解决方案1】:

这样做的方法是在构建质量发生变化时触发部署。例如,当质量更改为“准备好进行 QA”时,会触发更改事件以从现有构建文件夹部署到 QA 系统。

请参阅 Publish to FTP after TFS 2010 build quality changeAuto-Deployment Using Microsoft Web Deploy on Build Quality Change Event of TFS 2010

【讨论】:

    【解决方案2】:

    您可以限制有权启动构建的用户,从而将启动手动构建的权限授予您的 QA 团队。

    在您的 TFS 构建脚本中,您可以创建 QA 团队所需的部署步骤。默认情况下,您将根据参数使其有条件,并将其设置为不部署。您可以根据它是 CI 构建还是手动构建来判断为真或假。

    当您准备好让 QA 测试您的代码时,您可以为他们提供要使用的标签,他们只需将其传入并能够构建和部署它。

    这样做的好处在于,您可以控制准备好将哪个已签署的代码版本移交给您的 QA 团队。

    您还有一份报告,其中列出了已移交给 QA 的特定代码和工作项。

    【讨论】:

      【解决方案3】:

      我最近使用以下方法进行了此操作:

      1. 选择部署目标(选择机器、站点、多个配置项数据)。
      2. 自定义 .config 文件转换以匹配部署目标(连接字符串等)。
      3. 执行任务,让 MSDeploy 使用 Web Deploy 2.0 将构建版本发送到服务器。
      4. PSExec 在服务器上远程执行 appcmd 命令以重启特定站点
      5. 重复服务,使用 MSDeploy 推送。
      6. 构建脚本为服务生成安装/卸载脚本。
      7. PSExec 用于服务(停止、卸载、安装、启动)。

      这在一个 MSBuild 文件中保持隔离,可以从任何传递构建删除号的命令行执行,或者可以使用 MSBuild 任务将其添加到 TFS 构建定义中,关闭您已设置的额外参数已经设置好了。

      【讨论】:

        猜你喜欢
        • 2011-08-04
        • 2018-06-28
        • 2019-01-29
        • 1970-01-01
        • 2022-11-12
        • 2014-01-28
        • 2021-07-01
        • 1970-01-01
        相关资源
        最近更新 更多