gpt4 book ai didi

azure - 创建新版本时,如何使用 API、az devops cli 或任何其他替代方案取消版本中的阶段?

转载 作者:行者123 更新时间:2023-12-03 03:44:28 25 4
gpt4 key购买 nike

我有一个发布管道,它依赖于一个查询来继续。当查询没有得到结果时,阶段会继续处理。

like this

我想做的是找到一种方法在创建另一个版本时取消一个阶段(或整个版本)。我已经尝试使用 azure devops API 以及 az devops cli。但没有成功。有谁知道如何解决它?谢谢

最佳答案

to cancel a stage (or the whole release) when another release is created

您可以使用以下 PowerShell 命令取消发布

Write-Host "##vso[task.setvariable variable=agent.jobstatus;]canceled"
Write-Host "##vso[task.complete result=Canceled;]DONE"

您需要做的是使用上述代码添加 PowerShell 任务,并添加自定义条件配置以在创建新版本时取消构建。完成此任务后,所有其他任务都将被取消。

状态将显示“成功”,但发布将被取消。

此外,如果您想将状态显示为已取消,请使用 Rest API,为此请检查下面的 PowerShell 脚本。

# Copyright (C) 2018 Lex Li
# https://github.com/lextm/vstsabort
# Released under Apache license.

$abort = $env:LEXTUDIO_VSTSABORT
Write-Host "Environment variable LEXTUDIO_VSTSABORT is $abort"
If ($abort -eq "TRUE")
{
Write-Host "Abort."
$url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build/builds/$($env:BUILD_BUILDID)?api-version=2.0"
Write-Host "URL: $url"
$pat = ":$env:SYSTEM_PAT"
$b = [System.Text.Encoding]::ASCII.GetBytes($pat)
$token = [System.Convert]::ToBase64String($b)

$body = @{ 'status'='Cancelling' } | ConvertTo-Json

$pipeline = Invoke-RestMethod -Uri $url -Method Patch -Body $body -Headers @{
'Authorization' = "Basic $token";
'Content-Type' = "application/json"
}
Write-Host "Pipeline = $($pipeline)"
}
Else
{
Write-Host "Continue."
}

有关更多信息,请查看此 SO1SO2线程。

关于azure - 创建新版本时,如何使用 API、az devops cli 或任何其他替代方案取消版本中的阶段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69713826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com