Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Serviços Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
As políticas de retenção controlam por quanto tempo as execuções de pipeline, as versões clássicas e os dados de teste são mantidos em Azure DevOps. Essas configurações ajudam você a equilibrar o uso de armazenamento, a conformidade e a rastreabilidade definindo quando você deve excluir dados mais antigos e quais dados devem ser retidos por mais tempo. Este artigo explica as opções de retenção disponíveis e como elas se aplicam a pipelines, versões e testes.
Pré-requisitos
| Product | Requisitos |
|---|---|
| Azure DevOps | - Uma organização Azure DevOps. - Um projeto Azure DevOps. |
| Permissões | - Por padrão, você pode gerenciar as políticas de retenção se for membro dos grupos Colaboradores, Administradores de Build, Administradores de Projeto ou Administradores de Versão. – Para gerenciar políticas de retenção, você precisa de uma das seguintes assinaturas: Enterprise, Test Professional ou MSDN Platforms. - Você também pode comprar acesso mensal Azure Test Plans e atribuir o nível de acesso Basic + Test Plans. Para obter mais informações, consulte Testando o acesso por função de usuário. |
Importante
Azure Pipelines não dá mais suporte a políticas de retenção por pipeline. Recomendamos que você use regras de retenção no nível do projeto.
Configurar políticas de retenção
Para abrir as páginas de configurações de retenção em seu projeto e escolher a área de política que você deseja gerenciar, siga estas etapas:
Entre em seu projeto de Azure DevOps.
Selecione
>Project settings.Selecione uma das seguintes opções:
- Em Pipelines, selecione Configurações para configurar políticas de retenção para execuções, artefatos, símbolos, anexos e execuções de solicitação de pull.
- Em Pipelines, selecione Retenção de versão para definir as configurações de retenção de versão, inclusive quando as versões são excluídas ou destruídas permanentemente.
- Em Teste, selecione Retenção para configurar por quanto tempo as execuções de teste manuais e automatizadas são mantidas.
O pipeline executa políticas de retenção
Na maioria das vezes, você não precisa manter execuções já concluídas indefinidamente. As políticas de retenção de runs permitem definir por quanto tempo os runs e os dados relacionados são mantidos antes da exclusão.
Acesse o
>guia Configurações das configurações do projeto.Na seção Pipelines , selecione Configurações:
Aviso
Azure DevOps não dá mais suporte a regras de retenção por pipeline. A única maneira de configurar políticas de retenção para YAML e pipelines clássicos é por meio das configurações de projeto descritas anteriormente. Não é mais possível configurar políticas de retenção por pipeline.
O número de execuções recentes a serem mantidas para cada configuração de pipeline é interpretado de forma diferente com base no tipo de repositório:
Azure Repos: Azure Pipelines mantém o número configurado de execuções mais recentes para o branch padrão do pipeline e para cada branch protegido no repositório. Uma ramificação protegida é qualquer ramificação com políticas de ramificação configuradas.
Por exemplo, considere um repositório com dois branches:
mainerelease. Se a ramificação padrão do pipeline formainereleasetiver uma política de ramificação,releaseserá tratado como uma ramificação protegida. Se você configurar a retenção para manter três execuções, o Azure Pipelines manterá as três últimas execuções paramain, as três últimas execuções parareleasee as três últimas execuções para todo o pipeline (independentemente da ramificação).O exemplo a seguir pressupõe que a execução mais recente é listada primeiro. Mostra quais execuções são retidas quando você configura a retenção para manter as três execuções mais recentes (ignorando a configuração baseada em dias).
Executar # Ramo Retido/Não retido Por quê? Executar 10 principal Retido Três mais recentes para principal e Três mais recentes para pipeline Executar 9 branch1 Retido Três mais recentes para pipeline Executar 8 branch2 Retido Três mais recentes para pipeline Executar 7 principal Retido Três mais recentes para principal Versão 6 principal Retido Três mais recentes para principal Executar 5 principal Não mantido Não são os 3 últimos para principal ou para pipeline Executar 4 principal Não mantido Não são os 3 últimos para principal ou para pipeline Run 3 branch1 Não mantido Não são os 3 últimos para principal ou para pipeline Executar 2 versão Retido Três mais recentes para lançamento Executar 1 principal Não mantido Não são os 3 últimos para principal ou para pipeline O número de dias a serem retidos é calculado a partir dessa data quando a execução é concluída. Por exemplo, há duas execuções na ramificação principal em 19 de janeiro. A execução concluída mais tarde é mantida.
Todos outros repositórios Git: Azure Pipelines mantém o número configurado de execuções mais recentes para todo o pipeline.
Team Foundation Version Control (TFVC): Azure Pipelines mantém o número configurado de execuções mais recentes para todo o pipeline, independentemente do branch.
Quais partes da execução são excluídas
Quando uma execução é excluída, os seguintes dados são removidos:
- Registros
- Todos os artefatos de pipeline e build
- Todos os símbolos
- Binários
- Resultados do teste
- Executar metadados
- Rótulos de origem (TFVC) ou tags (Git)
A retenção de execução de pipeline não controla Universal Packages, NuGet, npm e outros pacotes.
Quando as execuções são excluídas
Uma execução será excluída se todas as seguintes condições forem verdadeiras:
- Ele excede o número de dias configurados nas configurações de retenção.
- Não é uma das execuções recentes, conforme definido nas configurações de retenção.
- Não está marcado para retenção por tempo indeterminado.
- Não é retida por uma versão.
As políticas de retenção são processadas uma vez por dia. O tempo de processamento varia porque o trabalho é distribuído ao longo do dia para balanceamento de carga. Você não pode alterar esse agendamento.
Definir automaticamente a concessão de retenção em execuções de pipeline
Leases de retenção permitem que você estenda ou controle o tempo de vida das execuções dos pipelines além dos períodos de retenção configurados. Você pode adicionar ou excluir concessões para um pipeline executado usando a API de Concessão. Você pode chamar essa API de dentro de um pipeline usando um script e variáveis predefinidas para runId e definitionId.
Você pode definir uma concessão por uma duração específica. Por exemplo, você pode manter uma execução que é implantada em um ambiente de teste por um período mais curto. Você pode manter um processo implantado no ambiente de produção por mais tempo.
Definir manualmente a concessão de retenção em execuções de pipeline
Você pode reter manualmente uma execução de pipeline no menu Mais ações na página Detalhes da execução do pipeline.
Excluir uma execução
Você pode excluir execuções do menu Mais ações na página Detalhes da execução do pipeline.
Observação
Se as políticas de retenção estiverem atualmente aplicadas à operação, você deverá removê-las antes de excluir a operação. Para obter instruções, confira Detalhes da execução do pipeline: excluir uma execução.
Libera políticas de retenção
As políticas de retenção para pipelines de lançamento clássicos determinam por quanto tempo uma versão e sua execução associada são mantidas. Com essas políticas, você pode configurar ambos:
- O número de dias para manter cada versão após a última modificação ou implantação.
- O número mínimo de lançamentos a serem retidos para cada pipeline.
O temporizador de retenção é redefinido sempre que uma versão é modificada ou implantada em um estágio. A configuração de lançamentos mínimos tem prioridade sobre a configuração baseada em dias. Por exemplo, se você definir o mínimo para três versões, as três versões mais recentes serão mantidas, independentemente do número de dias configurados. Você ainda pode excluir essas versões manualmente quando não precisar mais delas. Para obter mais informações, consulte as perguntas frequentes mais adiante neste artigo.
O YAML e os pipelines de criação usam a mesma política de retenção de execução. Você pode exibir essas configurações em Configurações do projeto>Pipelines>Configurações.
Política de retenção de versão global
No Azure DevOps Services, você pode exibir essas configurações, mas não pode alterá-las no nível do projeto.
Você pode examinar as configurações de retenção de versão global na página Retenção de lançamento em suas configurações do projeto:
- Política de retenção máxima: define o limite superior por quanto tempo você pode reter lançamentos em todas as políticas de lançamento. Os autores do pipeline não podem configurar a retenção além desse limite.
- Política de retenção padrão: define os valores de retenção padrão aplicados aos pipelines de lançamento. Os autores de pipeline podem substituir esses padrões.
- Destruir versões permanentemente: controla por quanto tempo as versões excluídas são mantidas antes da remoção permanente. Pipelines de lançamento individuais não podem substituir essa política.
Política de retenção de versão global
Se você usar Azure DevOps Server local, poderá configurar os padrões e os máximos no nível do projeto para retenção de versão. Você também pode definir quando as versões excluídas são permanentemente destruídas. (Eles são removidos da guia Excluído no Gerenciador de Build.)
- Política de retenção máxima: define o limite superior por quanto tempo você pode reter lançamentos em todas as políticas de lançamento. Os autores do pipeline não podem configurar a retenção além desse limite.
- Política de retenção padrão: define os valores de retenção padrão aplicados aos pipelines de lançamento. Os autores de pipeline podem substituir esses padrões.
- Destruir versões permanentemente: controla por quanto tempo as versões excluídas são mantidas antes da remoção permanente. Pipelines de lançamento individuais não podem substituir essa política.
Definir políticas de retenção no nível da coleção de dados
Se você usar um servidor on-premises, também poderá configurar a retenção no nível da coleção com regras personalizadas. Essas configurações se aplicam a pipelines de build clássicos e definem os valores de retenção padrão e máximo para a coleção.
Usar a tarefa Copiar arquivos para salvar dados por mais tempo
Se você precisar manter a saída de build por mais tempo do que o período de retenção configurado, copie-a para seu próprio local de armazenamento usando a tarefa Copiar arquivos.
Use Copiar arquivos em vez de Publicar artefatos de build porque os dados publicados como artefatos de build ainda estão sujeitos a limpeza de retenção.
perguntas frequentes
Se eu marcar uma execução ou uma versão a ser retida indefinidamente, a política de retenção ainda se aplicará?
Não. A política de retenção do pipeline e os limites máximos definidos pelo administrador não são aplicados quando você marca uma execução individual ou uma versão a ser retida indefinidamente. Ele permanece até que você decida não mais retê-lo indefinidamente.
Como especificar que as execuções implantadas na produção deverão ser retidas por mais tempo?
Se você usar versões clássicas para implantar em produção, personalize a retenção no pipeline de lançamento. Defina quantos dias você deseja manter as versões implantadas na produção e especifique que as execuções associadas a essas versões são mantidas. Essa configuração substitui a política de retenção de execução.
Se você usar pipelines YAML de vários estágios, poderá configurar a retenção somente nas configurações do projeto. Você não pode configurar a retenção por ambiente de implantação.
Eu não marquei as execuções para serem mantidas indefinidamente, mas muitas execuções estão sendo mantidas. Como impedir esse comportamento?
Esse comportamento pode ocorrer devido a um dos seguintes motivos:
- Alguém em seu projeto marcou as tarefas para retenção indefinida.
- A versão consume as execuções e a versão mantém um bloqueio de retenção nessas execuções. Personalize a política de retenção de versão, conforme explicado anteriormente.
Se as execuções não forem mais necessárias ou se as versões que as retiveram já foram excluídas, você poderá excluir manualmente as execuções.
Como a configuração funciona para versões mínimas a serem mantidas?
As versões mínimas para manter o valor são definidas no nível do estágio. O Azure DevOps sempre mantém esse número de versões implantadas mais recentemente para o estágio, mesmo que estejam fora do período de retenção. Um lançamento conta para esse mínimo somente quando a implantação para esse estágio inicia. As implantações bem-sucedidas e falhas são contadas. As liberações pendentes de aprovação não são contadas.
Como o período de retenção é decidido quando a versão é implantada em vários estágios que possuem períodos de retenção diferentes?
O período de retenção final é determinado pelos Dias para manter as configurações em todos os estágios em que a versão é implantada, usando o valor máximo entre esses estágios. As versões mínimas a serem mantidas são específicas do estágio e não são alteradas com base em se uma versão foi implantada em um ou vários estágios. Reter artefatos associados só se aplica quando uma versão é implantada em um estágio em que essa opção está habilitada.
Exclui um estágio para o qual tenho algumas versões antigas. Qual retenção é considerada para esse caso?
Depois que um estágio é excluído, suas configurações de retenção no nível do estágio não se aplicam mais. Nesse caso, Azure DevOps usa as configurações de retenção padrão no nível do projeto.
Minha organização exige que mantenhamos compilações e lançamentos por mais tempo do que o permitido nas configurações. Como posso solicitar uma retenção mais longa?
Para manter uma execução ou versão por mais tempo do que os limites de retenção configurados, marque-a para ser mantida indefinidamente. Não há nenhuma configuração para configurar manualmente um período de retenção mais longo. Para obter assistência, entre em contato com Azure DevOps Support.
Você também pode usar APIs REST para baixar informações de execução e artefatos e armazená-los em sua própria conta de armazenamento ou repositório de artefatos.
Perdi algumas execuções. Há uma maneira de recuperá-los?
Se você acredita que as execuções foram perdidas por causa de um bug de serviço, crie um chamado de suporte imediatamente. Se uma definição de build tiver sido excluída manualmente mais de uma semana antes, você não poderá recuperá-la. Se as execuções tiverem sido excluídas conforme esperado pela política de retenção, não será possível recuperá-las.
Como posso usar a capacidade Build.Cleanup dos agentes?
Configurar a capacidade Build.Cleanup nos agentes direciona os trabalhos de limpeza apenas para esses agentes, o que mantém os demais agentes disponíveis para trabalhos regulares do pipeline. Quando uma execução de pipeline é excluída, os artefatos armazenados fora do Azure DevOps são limpos por meio de um trabalho de agente. Se os trabalhos de limpeza saturarem seu pool, designe um subconjunto de agentes como agentes de limpeza. Quando qualquer agente tiver Build.Cleanup definido, somente esses agentes executarão trabalhos de limpeza. Para habilitar essa configuração, acesseOs Recursos> e defina Build.Cleanup como 1.
O que acontece com artefatos de compartilhamento de arquivos quando o build é excluído?
Quando uma criação com compartilhamento de arquivos do artifacts é excluído, uma nova tarefa de criação é colocada na fila em um agente de criação para limpeza desses arquivos. Um agente é escolhido para executar essa tarefa com base nos seguintes critérios:
- Há um agente com
Build.Cleanupcapacidade disponível? - O agente que executou o build está disponível?
- Um agente do mesmo pool está disponível?
- Está disponível um agente de um pool semelhante?
- Algum agente está disponível?
Os resultados do teste automatizado que são publicados como parte de uma versão são mantidos até que a versão seja excluída?
Os resultados do teste publicados em uma fase de versão são mantidos de acordo com a política de retenção de teste, não com a política de retenção de versão. Se você precisar que os resultados do teste sejam mantidos enquanto a versão estiver ativa, defina a retenção de execução de teste automatizada nas Configurações do Projeto para Nunca excluir. Essa configuração garante que os resultados do teste sejam excluídos somente quando a versão for excluída.
Os resultados do teste manual são excluídos?
Não. Os resultados do teste manual não são excluídos.
Como fazer para preservar meus rótulos ou marcas de controle de versão?
Se rótulos ou marcas precisarem ser preservados depois que uma criação for excluída, aplique-os em uma tarefa de pipeline, adicione-os manualmente fora do pipeline ou mantenha a criação indefinidamente.
Importante
Todos os rótulos ou marcas de controle de versão aplicados durante um pipeline de build que não são criados automaticamente pela tarefa Fontes são preservados, mesmo que o build seja excluído. Etiquetas ou tags que são criadas automaticamente pela tarefa Fontes durante uma compilação são tratadas como artefatos de build e são excluídas com o build.
O que acontece com pipelines consumidos em outros pipelines?
As versões clássicas retêm pipelines que consomem automaticamente.
O que acontece com pipelines consumidos em outros pipelines?
As versões clássicas retêm pipelines que consomem automaticamente. Se você estiver usando YAML, também poderá criar um pipeline YAML multifase para representar sua liberação e consumir outro pipeline YAML nele como um recurso. O pipeline de recursos é retido automaticamente, desde que o pipeline de lançamento seja retido.