У меня возникают проблемы при попытке отобразить все прогоны одного из моих конвейеров. Я работаю в локальной среде Azure Devops 2020 и получаю постоянно вращающийся диалог загрузки. У меня нет этой проблемы ни в одном из моих других конвейеров. Кажется, что если я фильтрую по состоянию выполнения в проблемном конвейере, я могу обойти это и просмотреть некоторые из запусков, но для других состояний в моем случае «Успешно» и «Успешно с проблемами» я продолжаю получать вращающийся символ загрузки. Любой совет?
Конвейер Azure DevOps не отображает все запуски
Ответы (1)
Вот некоторые предложения:
Предложение 1
Очистите кеш или загрузите страницу из другого браузера и перезапустите сервер Azure DevOps и компьютер с SQL Server.
Предложение 2
Создайте новый конвейер с теми же настройками, что и у затронутого конвейера.
Предложение 3
Вы можете использовать REST API Сборки - Список, чтобы получить все запуски вашего конвейера.
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=6.0
Потому что причиной этого вопроса может быть слишком длинный список запусков. Вы можете использовать REST API Builds-Delete, чтобы удалить некоторые прогоны, вам не нужно проверять, можно ли решить вопрос.
DELETE https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=6.0
Предложение 4
Вы можете обратиться к аналогичному вопросу в сообществе разработчиков. Комментарий Яна Зельбаха предлагает решение.
1. Запустите следующий сценарий SQL, чтобы найти LeaseId повторяющихся строк. Измените имя коллекции Db на свое.
SELECT LeaseId FROM [AzureDevOps_DefaultCollection].[Build].[tbl_RetentionLease] WHERE partitionId > 0 AND LeaseId NOT IN ( SELECT MIN(LeaseId) as LeaseId FROM [AzureDevOps_DefaultCollection].[Build].[tbl_RetentionLease] WHERE PartitionId > 0 GROUP BY OwnerId,RunId )
2. объедините LeaseIds в список, разделенный запятыми.
3. Запустите следующий сценарий PowerShell, указав org, project, pat и leaseId, передав список LeaseId, разделенный запятыми (помните, если локально измените https://dev.azure.com в $ uri на вашем локальном сервере)
$org = "";
$project = "";
$pat = "";
$encoded = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([string]::Format("{0}:{1}", "", $pat)));
$accessToken = "Basic $encoded";
$leaseId = "";
$uri = "https://dev.azure.com/$org/$project/_apis/build/retention/leases?ids=$leaseId&api-version=6.0-preview";
try {
$response = Invoke-RestMethod -uri $uri -method DELETE -Headers @{ Authorization = $accessToken } -ContentType "application/json"
$response
}
catch {
$errorDetails = ConvertFrom-Json $_.ErrorDetails
Write-Host "StatusCode: $($_.Exception.Response.StatusCode)`nExceptionType: $($errorDetails.typeKey)`nExceptionMessage: $($errorDetails.message)"
#StackTrace: $($errorDetails.stackTrace)"
}