【问题标题】:In Azure Release Pipelines is it possible to manually trigger multiple release pipelines at once?在 Azure 发布管道中,是否可以一次手动触发多个发布管道?
【发布时间】:2020-10-23 10:59:18
【问题描述】:

在我们的组织中,我们为每个 repo 设置了一个完整的管道(在 yaml 中构建并使用 ui 发布,我们必须这样做才能使用部署组)。我们必须通过管道将存储库分开,因为我们经常为该服务发布版本,但有时我们会同时发布多个服务(这是在发布之前就知道的方式)。

目前我们只有要运行的发布管道列表,并且我们手动运行每一个。

我想知道是否有办法进行设置,以便在初始设置后单击即可运行多个发布管道?

以下是 id 理想采取的步骤:

  1. 确定需要发布哪些管道(这通常发生在计划会议冲刺之前)
  2. 创建“一些东西”(另一个仅用于此版本的发布管道,另一个我不知道的天蓝色选项),基本上将所有需要包含在一个地方的发布管道。
  3. 触发所有发布管道以便它们运行(就像我手动运行每一个一样)

【问题讨论】:

  • 没有得到您的最新信息,以下解决方案对您有帮助吗?或者,如果您有任何疑问,请随时在此处分享。

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


【解决方案1】:

您可以使用Trigger Azure DevOps Pipeline,然后创建另一个管道:

您可以为每个版本创建一个变量来指示您要部署的工件版本。

这样,您只需在定义变量后在运行此版本之前编辑变量。

【讨论】:

    【解决方案2】:

    作为另一种解决方法,您可以添加一个 PowerShell 任务来为 REST API 的不同版本定义创建多个版本。

    POST https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=5.0
    

    创建版本的示例 powershell 脚本如下:

    #Define the variable and enter the release definition id that you want to trigger. For example, I want to manually trigger release pipelines 1 and 2 at once.
    
    $ReleaseDefinitionID = 1,2
    
    ForEach ($ID in $ReleaseDefinitionID)
    {
    Write-host "ID is" $ID
    
    $token = "pat"   
    $url = "https://vsrm.dev.azure.com/{organization}/{project}/_apis/Release/releases?api-version=5.0"
    $token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
    
    
    $JSON = @"
    {
      "definitionId": $ID
    }
    "@
    
    $response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -ContentType application/json -body $JSON
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多