【问题标题】:VSTS How to Trigger a Deployment Containing Multiple Release DefinitionsVSTS 如何触发包含多个发布定义的部署
【发布时间】:2018-08-17 07:22:12
【问题描述】:

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

有没有办法链接发布定义并手动触发“全局”发布以将所有 20 个发布定义部署到特定环境?

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

谢谢!!

【问题讨论】:

    标签: azure-devops release azure-pipelines azure-pipelines-release-pipeline


    【解决方案1】:

    您可以通过 VSTS API 创建/管理版本。

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

    具体看“在环境中开始部署”的示例。

    示例场景可能如下所示

    1. 从 API 创建一个版本

      POST https://{instance}/{project}/_apis/release/releases?api-version={4.0-preview.4}
      
    2. 响应“A Release 对象”将包含触发环境部署所需的关键元素。您需要发布 ID 和环境 ID。 在响应中找到这个发布ID将在响应中返回,保存它,这是您以后自动化环境部署的关键

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

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

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

    【讨论】:

    • 这让我们朝着正确的方向前进。谢谢!!查看链接后,我仍然不确定版本定义如何将预先存在的版本部署到环境中。你有语法例子吗?
    • @Brian 我已经用您创建然后手动触发发布的场景更新了我的答案。在您的情况下,您将在每个版本中执行 20 次以上操作
    • 感谢您提供此示例。不同之处在于该版本已经存在,并且我们正在从阶段推广到产品。我们可以用来构建请求以便使用正确的发布定义、ID 和环境的唯一值是什么?
    • @Brian,请参阅我最初发布的文档,特别是“列表发布”。您可以提供过滤器以获取您感兴趣的特定版本
    【解决方案2】:

    没有这样的设置来触发多个发布定义。

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

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

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

    【讨论】:

    • 不知道有没有计划增加这样的功能?
    【解决方案3】:

    您可以拥有一个构建定义,并将该构建定义链接到您的所有版本,并启用持续部署触发器。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-15
      • 2018-09-19
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 2016-08-19
      • 2018-09-18
      相关资源
      最近更新 更多