首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成管道不删除

生成管道不删除
EN

Stack Overflow用户
提问于 2018-09-26 03:03:59
回答 13查看 37.6K关注 0票数 41

在Azure DevOps门户中,我选择一个管道,然后.菜单,然后删除。

我看到一条留言问:

真的吗?此操作无法撤消。这将永久删除管道'vt3e (1)‘。删除包括所有构建和相关工件。

我输入管道名称并单击OK,但管道不删除。

我已经等了好几个小时了。

更新

Chrome中的F12显示了控制台中的一个错误:

ms.vss-build-web.common-library.__y__CePsj5f5zdcIK.min.js:18错误:与请求的管道相关联的一个或多个版本由发行版保留。管道和构建将不会被删除。

更新

我试图按照David D给出的答案,但当我删除一个发布时,我会收到一条消息

VS402946:'Release-8‘不能被删除,因为它目前部署在阶段1上。

更新

此问题已记录在Microsoft上。

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2018-09-26 08:38:31

我遇到了同样的问题,尝试了不同的浏览器、平台等等。我发现,通过手动删除releases选项卡下的每个版本,返回构建,然后尝试删除这个管道对我来说是有效的。

票数 29
EN

Stack Overflow用户

发布于 2021-08-19 18:59:17

如果您已经删除了该版本,但仍然会出现此错误,则解决方法是:

  1. 转到有问题的构建管道。
  2. 在“运行”选项卡下,分别打开每个“运行”。
  3. 如果要保留运行,您将在顶部看到一个白色框,其词句为“此运行已被82 (管道)永久保留”,而在右边,您将看到一个“查看保留释放”按钮。这就是您将删除一个或多个保留版本的地方。
  4. 你必须通过每一个“运行”并重复这个过程

如果该白色框/按钮不可见,则不会保留特定的运行。您可以通过单击右上角的三个点并选择“视图保留版本”来确认这一点。

票数 34
EN

Stack Overflow用户

发布于 2020-02-04 16:36:54

上周,我也遇到了同样的问题,我更新了来自某人的脚本,以便使用5.1API。此脚本将运行由发布管道保留的所有构建。您将需要一些调整,您不希望您的所有构建都从版本中删除。

代码语言:javascript
复制
$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。

在运行这个脚本之后,我能够删除构建管道。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52509335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档