VSTS 如何触发包含多个发布定义的部署

VSTS How to Trigger a Deployment Containing Multiple Release Definitions

我们有 20 个版本定义需要一起部署以部署到一个环境中。

有没有办法 link 发布定义并手动触发 "global" 发布以将所有 20 个发布定义部署到特定环境?

此时我们手动启动每个版本,点击很多!

谢谢!!

没有触发多个版本定义的设置。

目前发布环境可以触发三种类型:发布后、环境后、手动。

如果您手动部署,您应该分别创建不同版本定义的版本。

解决方法是将来自不同发布定义的所有任务添加到一个发布定义中(将多个发布定义合并到一个发布定义中),然后为该发布定义创建一个发布.

您可以 create/manage 通过 VSTS API 发布。

https://www.visualstudio.com/en-us/docs/integrate/api/rm/releases

具体看"Start deployment on an environment"的例子。

示例场景可能如下所示

  1. 从 API

    创建一个版本
    POST https://{instance}/{project}/_apis/release/releases?api-version={4.0-preview.4}
    
  2. 响应 "A Release object" 将包含触发环境部署所需的关键元素。您需要发布 ID 和环境 ID。 在response中找到release ID会在response中返回,保存,这是你后面自动化部署环境的关键

  3. 假设创建的版本 ID 为 77,环境(生产)ID 为 3

  4. 最后一步是开始发布:

    PATCH https://{instance}/{project}/_apis/Release/releases/77/environments/3
    
    {
        "status": "inProgress",
        "scheduledDeploymentTime": null,
        "comment": null
    }
    

您可以拥有一个构建定义,并且 link 该构建定义适用于您的所有版本,并启用持续部署触发器。

每当构建完成时,将触发所有20个RD上的发布。

现在这个构建实际上可以产生一些有意义的工件,或者它可以充当所有发布定义的触发点。