Azure Pipeline - 跳过阶段

问题描述 投票:0回答:1

我有一个主管道,我可以在其中选择应该触发哪些阶段。该主管道调用其他管道。从这些管道中,还应该从主管道中触发该阶段。我发现有一个

stagesToSkip
参数。但我在那里选择什么并不重要。被调用管道中的所有阶段都会被触发。错误是什么?

$targetEnvironment = 'dev'

$stages = @("dev", "staging", "prod") | Where-Object { $_ -ne $targetEnvironment } | ConvertTo-Json
$body = "{
    `"stagesToSkip`" : $(ConvertTo-Json($stages))
}"
Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -Body $body -ContentType application/json
azure-devops azure-pipelines azure-devops-rest-api
1个回答
0
投票

我已经按照链接中的方式完成了。我可以找到我的错误。 $stages 已经是一个数组。所以片段必须是“stagesToSkip”:$stages

是的,您需要修复

stagesToSkip
值。我修复了代码,该代码只会触发目标环境开发阶段,并跳过暂存、生产阶段。

pool:
  vmImage: Windows-latest

steps:
- checkout: none
- powershell: |
    $url="https://dev.azure.com/{org}/{project}/_apis/pipelines/{pipelineid}/runs?api-version=6.0-preview.1"
    $targetEnvironment = 'dev'
    $stages = @("dev", "staging", "prod") | Where-Object { $_ -ne $targetEnvironment }
    $stagestoskip = '[ "' + ($stages -join '", "') + '" ]'
    echo $stagestoskip
    $body="{
      `"stagesToSkip`": $stagestoskip
    }"
    Invoke-RestMethod -Uri $url -Headers @{Authorization = "Bearer $(System.AccessToken)"} -Method Post -Body $body -ContentType application/json

仅运行目标开发阶段:

关于您的新查询,您可以提出新的请求并分享链接。

© www.soinside.com 2019 - 2024. All rights reserved.