【问题标题】:VSTS: Release Management Binding Release Definition to Multiple Builds or ProjectsVSTS:发布管理将发布定义绑定到多个构建或项目
【发布时间】:2016-08-19 12:18:18
【问题描述】:

我正在尝试使用 VSTS(发布中心)配置发布管理。我有三种不同的环境;每个环境包含两台服务器。

提议的发布管道:

Zone1_Dev -> Zone1_QA ->Zone1_PROD(其中每个包含两个服务器)

谈论“Zone1_Dev”环境,其中包含同一网络中的两台服务器 A 和 B。

我的解决方案中有两个 Web 应用程序,每个服务器将托管不同的应用程序:

  • 服务器 A 托管客户端 UI (MyClientUI)
  • 服务器 B 托管管理 UI (MyAdminUI)

因此,我为每个应用程序创建了两个不同的构建定义,因为我想避免构建这两个项目(因为它们不会相互影响)。

AdminUI 定义映射到 MyAdminUI 项目:

然后,我创建了一个发布定义,因为我将通过发布管道如下: Zone1_Dev -> Zone1_QA ->Zone1_PROD

代理安装在服务器 A 上,它将在 AdminUI 或 ClientUI 中获得任何更改。如果是:

  • ClientUI,它会将其移动到服务器 A IIS 目录。
  • 如果是 AdminUI,代理会将其移动到服务器 B 的 IIS 目录。

我的问题,如何将一个版本链接到不同的构建定义。因为根据我的策略,我必须创建两个具有相同配置但不同构建定义的不同发布定义。有没有办法在一个发布定义中做到这一点,因为它们共享相同的管道?

【问题讨论】:

  • 很确定不支持将一个版本链接到不同的构建定义。如果两个构建试图同时触发发布会发生什么?为什么这是个问题?是因为必须维护两个相同的版本吗?
  • 是的,因为我必须为每个区域维护多个服务器(这意味着多个版本,如果该功能不存在),并且我至少有 2 个区域。区域 1 仅包含两台服务器,每台服务器托管不同的应用程序。但是,区域 2(我的问题中没有提到)将是服务 API,我有两台服务器,其中一台托管 7 个 wcf 服务 api 项目。我会创建 7 个不同的版本(每个项目一个)吗?

标签: continuous-integration azure-devops release-management continuous-deployment ms-release-management


【解决方案1】:

您可以将一个版本链接到不同的构建定义,该版本将下载所有链接的构建定义的工件。

但释放只能由一种定义触发:

【讨论】:

  • 感谢@Eddie,感谢您的帮助。每个版本指定多个工件,然后按照建议指定发布触发器,如果​​我指定(功能),我可能会错过另一个项目(UI)中的一些更改。这样,代码和版本就不会同步。这是正确的吗?如果我将触发器指定为“手动”会怎样,这会有所帮助吗?
  • @h.salman 不,该版本将始终下载两个定义的最新版本。问题是,在某些情况下,对 UI 进行了一些更改,并且为更改完成了构建。但是功能没有任何变化。然后在对功能进行一些更改之前不会触发发布。这可能会导致 UI 部署延迟。并且在这种情况下,您可以手动触发发布,以便及时部署 UI 更改。
  • @h.salman 您向 UI 构建定义添加了一个额外的构建步骤,以使用 REST API 显式触发发布(假设发布设置为由功能构建定义触发)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
相关资源
最近更新 更多