构建管道不会删除

时间:2018-09-26 03:03:59

标签: azure-devops

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

我看到一条消息询问:

  

确定吗?此操作无法撤消。这将永久   删除管道“ vt3e(1)”。删除包括所有构建和   关联的工件。

我输入管道名称,然后单击“确定”,但管道不会删除。

我已经等了几个小时。

[更新]

Chrome中的F12在控制台中显示错误:

  

ms.vss-build-web.com-library .__ y__CePsj5f5zdcIK.min.js:18错误:   与所请求的管道相关联的一个或多个构建是   被发布保留。管道和内部版本不会被删除

[更新]

我正在尝试遵循David D给出的答案,但是当我删除版本时,会收到一条消息

  

VS402946:无法删除“版本8”,因为它当前已部署在   阶段1。

[更新]

The issue is logged at Microsoft

5 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,并尝试了不同的浏览器,平台等。我发现,通过手动在“发布”选项卡下删除每个发行版,重新进行构建,然后再尝试删除管道对我来说是可行的。

答案 1 :(得分:5)

我上周遇到了同样的问题,我更新了某人的脚本以使用5.1 API。该脚本将在发布管道保留的所有构建上运行。您需要进行一些调整,以免所有版本从发行版中删除。

$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).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).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'}) -Headers $AzureDevOpsAuthenicationHeader -ContentType "application/json" | Out-Null
            Write-Output "`tFixed"
        }
    }
}

PowerShell脚本将首先获取所有构建管道,然后获取未无限保留并由发行版保留的所有构建。如果将CorrectError设置为true,则脚本将尝试将keepedByRelease标志切换为false。

运行此脚本后,我能够删除构建管道。

答案 2 :(得分:2)

enter image description hereenter image description here我遇到了以下同样的问题

与请求的管道关联的一个或多个构建由版本保留。管道和构建不会被删除。

解决这个问题很简单,只需打开要删除的管道,如果您在管道中看到了这个,只需单击三个点 [查看保留租约],然后打开查看保留租约,然后单击全部删除选项并关闭弹出窗口。[运行保留]。执行此操作后,您现在可以自由地删除所需的管道。

答案 3 :(得分:0)

转到管道运行并在您将鼠标悬停在每次运行上时单击 3 个点。您将看到查看保留租约的选项。单击它,然后单击全部删除。 您必须为所有运行都这样做。 删除后尝试删除构建管道。

答案 4 :(得分:-1)

您只需要单击三个点菜单按钮,然后选择删除,即可确保您知道自己实际在做什么,请选中“ 自动取消所有进行中的版本部署”并将其删除

enter image description here