我有一个mono,它有10个独立的CICD管道,用yaml编写。
我最近注意到,我们已经失去了大量的运行,其中一些成功的生产发行版。
我认为项目租金设置适用于所有管道,对吗?而不是个人?
我一直在ms网站上阅读,我认为为了让它们继续前进,我必须通过powershell脚本使用API。
我假设上述脚本需要在成功部署到生产后运行。
我很惊讶没有一个全球性的选择说“保持所有的生产版本”
发布于 2022-08-04 02:39:02
项目保留策略设置将应用于所有管道运行,而不是单独运行。因此,不能使用此设置直接保留特定的成功生产版本。
要实现这一点,您可以使用PowerShell脚本使用“条件”保留这些特定的运行。添加PowerShell脚本作为部署的最后一个任务,以检查是否需要保留此脚本。请参阅以下官方文档:https://learn.microsoft.com/en-us/azure/devops/pipelines/build/run-retention?view=azure-devops
下面是一个基于条件的永久保留的示例:
- powershell: |
$contentType = "application/json";
$headers = @{ Authorization = 'Bearer $(System.AccessToken)' };
$rawRequest = @{ daysValid = 365000 ; definitionId = $(System.DefinitionId); ownerId = 'User:$(Build.RequestedForId)'; protectPipeline = $false; runId = $(Build.BuildId) };
$request = ConvertTo-Json @($rawRequest);
$uri = "$(System.CollectionUri)$(System.TeamProject)/_apis/build/retention/leases?api-version=6.0-preview.1";
Invoke-RestMethod -uri $uri -method POST -Headers $headers -ContentType $contentType -Body $request;
displayName: 'PowerShell Script'
condition: {Your customize condition}
https://stackoverflow.com/questions/73226210
复制相似问题