在Azure DevOps门户中,我选择一个管道,然后.菜单,然后删除。
我看到一条留言问:
真的吗?此操作无法撤消。这将永久删除管道'vt3e (1)‘。删除包括所有构建和相关工件。
我输入管道名称并单击OK,但管道不删除。
我已经等了好几个小时了。
更新
Chrome中的F12显示了控制台中的一个错误:
ms.vss-build-web.common-library.__y__CePsj5f5zdcIK.min.js:18错误:与请求的管道相关联的一个或多个版本由发行版保留。管道和构建将不会被删除。
更新
我试图按照David D给出的答案,但当我删除一个发布时,我会收到一条消息
VS402946:'Release-8‘不能被删除,因为它目前部署在阶段1上。
更新
发布于 2018-09-26 08:38:31
我遇到了同样的问题,尝试了不同的浏览器、平台等等。我发现,通过手动删除releases选项卡下的每个版本,返回构建,然后尝试删除这个管道对我来说是有效的。
发布于 2021-08-19 18:59:17
如果您已经删除了该版本,但仍然会出现此错误,则解决方法是:
如果该白色框/按钮不可见,则不会保留特定的运行。您可以通过单击右上角的三个点并选择“视图保留版本”来确认这一点。
发布于 2020-02-04 16:36:54
上周,我也遇到了同样的问题,我更新了来自某人的脚本,以便使用5.1API。此脚本将运行由发布管道保留的所有构建。您将需要一些调整,您不希望您的所有构建都从版本中删除。
$tfsServerURL = "https://dev.azure.com/{organisation}"
$TFSProject = "{project}"
$AzureDevOpsPAT = "{token}"
$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)"))}
#Set to $true to update builds by settingretainingByRelease= false
$CorrectError = $true
$URL = "$($tfsServerURL)/$($TFSProject)"
Write-Output $URL
#Get all builddefinitions in Project
$Buildefinitions = (Invoke-RestMethod -Uri ($URL + '/_apis/build/definitions?api-version=5.1') -Method GET -UseDefaultCredentials -Headers $AzureDevOpsAuthenicationHeader).value
foreach($Builddefiniton in $Buildefinitions)
{
Write-Output "Searching in $($Builddefiniton.name) with id $($Builddefiniton.id)"
#Get Builds with keepforever = false and retainedByRelease = true
$Builds = (Invoke-RestMethod -Uri ($URL + '/_apis/build/builds?definitions=' + $Builddefiniton.id + '&api-version=5.1') -Method GET -UseDefaultCredentials -Headers $AzureDevOpsAuthenicationHeader).value | where {$_.keepForever -eq $False -and $_.retainedByRelease -eq $true}
#Get releases linked to the build
foreach ($build in $Builds)
{
If ($CorrectError)
{
Invoke-RestMethod -Uri ($URL + '/_apis/build/builds/'+ $build.id + '?api-version=5.1') -Method Patch -Body (ConvertTo-Json @{"retainedByRelease"='false'}) -UseDefaultCredentials -Headers $AzureDevOpsAuthenicationHeader -ContentType "application/json" | Out-Null
Write-Output "`tFixed"
}
}
}PowerShell脚本将首先获取所有构建管道,然后获取所有不是无限保留且由发行版保留的构建。如果CorrectError设置为true,则脚本将尝试将retainedByRelease标志切换为false。
在运行这个脚本之后,我能够删除构建管道。
https://stackoverflow.com/questions/52509335
复制相似问题