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.
Azure DevOps Services | 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 os dados mais antigos devem ser excluídos e o que deve ser mantido 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
| Produto | Requisitos |
|---|---|
| Azure DevOps | - Uma organização Azure DevOps. - Um projeto Azure DevOps. |
| Permissões | - Por padrão, os usuários nos grupos Colaboradores, Administradores de Build, Administradores de Projetos e Administradores de Versão podem gerenciar políticas de retençã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. Consulte Testando o acesso por função de usuário para obter mais detalhes. |
Importante
Azure Pipelines não dá mais suporte a políticas de retenção por pipeline. É recomendável usar regras de retenção no nível do projeto.
Configurar políticas de retenção
Use estas etapas 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.
Entre em seu projeto de Azure DevOps.
Selecione o ícone
Configurações do projeto.Selecione uma das seguintes opções:
- Em Pipelines, selecione Configurações para configurar a 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.
Vá para a
aba Configurações do seu projeto.Selecione Configurações na seção Pipelines .
- Defina quantos dias manter artefatos, símbolos e anexos.
- Defina quantos dias manter os registros.
- Defina por quantos dias manter as execuções do pull request.
- Defina o número de execuções recentes a serem mantidas para cada pipeline.
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 acima. 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. Um branch protegido é qualquer branch com políticas de branch configuradas.
Por exemplo, considere um repositório com dois branches:
mainerelease. Se o branch padrão do pipeline formainereleasetiver uma política de branch,releaseserá tratado como um branch protegido. 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 do branch).O exemplo a seguir pressupõe que a execução mais recente seja listada primeiro. Ele 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 o pipeline Executar 8 branch2 Retido As três mais recentes para o pipeline Executar 7 principal Retido Três mais recentes para principal Versão 6 principal Mantido Três mais recentes para principal Executar 5 principal Não mantido Nem os três mais recentes para principal, nem para pipeline Executar 4 principal Não mantido Nem os três mais recentes para principal, nem para pipeline Run 3 branch1 Não mantido Nem os três mais recentes para principal, nem para pipeline Executar 2 versão Mantido Três mais recentes para lançamento Executar 1 principal Não mantido Nem os três mais recentes para principal, nem para pipeline Todos outros repositórios Git: Azure Pipelines mantém o número configurado de execuções mais recentes para todo o pipeline.
TFVC: O Azure Pipelines reté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)
Pacotes Universais, NuGet, npm e outros pacotes não são regidos pela retenção de execução de pipeline.
Quando as execuções são excluídas
Uma execução será excluída se todas as seguintes condições forem verdadeiras:
- Excede o número de dias definido nas configurações de retenção
- Não se trata de uma das execuções recentes, conforme definido nas configurações de retenção
- Não está marcado para ser retido indefinidamente
- Não é mantido 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 e esse agendamento não pode ser alterado.
Configurar automaticamente a política 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, uma execução que é implantada em um ambiente de teste pode ser mantida por um período mais curto, enquanto uma execução que é implantada na produção pode ser retida por mais tempo.
Definir manualmente a política de retenção nas execuções de pipeline
Você pode manter manualmente uma execução de um pipeline no menu Mais ações na página de detalhes da execução do pipeline.
Excluir uma execução
Você pode excluir execuções no menu Mais ações na página detalhes da execução do Pipeline .
Observação
Se qualquer política de retenção atualmente se aplicar à execução, ela deverá ser removida antes que seja possível excluir a execução. Para obter instruções, confira Detalhes da execução do pipeline – Excluir uma execução.
Políticas de retenção de lançamentos
As políticas de retenção de versã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 detalhes, consulte as perguntas frequentes mais adiante neste artigo.
O YAML e os pipelines de build 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 lançamento 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 globais de retenção de lançamento na página de retenção de lançamento em Configurações do projeto.
A política de retenção máxima define o limite superior de quanto tempo os releases podem ser retidos em todos os pipelines de release. Os autores do pipeline não podem configurar a retenção além desse limite.
A política de retenção padrão define os valores de retenção padrão aplicados aos pipelines de liberação. Os autores de pipeline podem substituir esses padrões.
O controle de Destruição permanente de versões determina por quanto tempo as versões excluídas são mantidas antes da sua remoção definitiva. Pipelines de lançamento individuais não podem substituir essa política.
Política de retenção de liberação global
Se você estiver usando 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 (removidas da guia Excluída no Gerenciador de Build).
A política de retenção máxima define o limite superior de quanto tempo os releases podem ser retidos em todos os pipelines de liberação. Os autores do pipeline não podem configurar a retenção além desse limite.
A 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 sobrepor esses valores padrão.
O controle Destruir versões permanentemente determina por quanto tempo as versões eliminadas são mantidas antes da remoção definitiva. Pipelines de versão individuais não podem substituir essa política.
Definir políticas de retenção no nível da coleção de dados
Se você estiver usando um servidor local, também poderá configurar a retenção ao 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 Compilação, pois os dados publicados como artefatos de compilação ainda estão sujeitos à limpeza de retenção.
perguntas frequentes
Se eu marcar uma execução ou versão para ser mantida indefinidamente, a política de retenção ainda se aplicará?
Não. Nem a política de retenção do pipeline nem os limites máximos definidos pelo administrador são aplicados quando você marca uma execução individual ou uma versão a ser retida indefinidamente. Ela permanecerá até que você pare de retê-la indefinidamente.
Como especificar que as execuções implantadas na produção serão mantidas por mais tempo?
Se você usar releases clássicos para implantar em produção, personalize a retenção no pipeline de release. Defina quantos dias as versões implantadas na produção devem ser mantidas e especifique se as execuções associadas a essas versões são mantidas. Isso substitui a política de retenção de execução de tarefas.
Se você usar pipelines YAML de vários estágios, a retenção só poderá ser configurada nas configurações do projeto. Você não pode configurar a retenção por ambiente de implantação.
Eu não marquei execuções para serem retidas indefinidamente. No entanto, vejo um grande número de processos sendo mantidos. Como posso evitar isso?
Isso pode ocorrer por um dos seguintes motivos:
- As execuções são marcadas por alguém em seu projeto para serem retidas indefinidamente.
- As execuções são consumidas por um release, e o release mantém um bloqueio de retenção nessas execuções. Personalize a política de retenção de liberação, conforme explicado acima.
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 funciona a configuração de "número mínimo de versões a manter"?
As versões mínimas para manter o valor são definidas no nível do estágio. 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 é iniciada. 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 com um período de retenção diferente?
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.
Excluí uma etapa para a qual tenho algumas versões antigas. Qual retenção será considerada nesse 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 tarefas. Há uma maneira de recuperá-los?
Se você acredita que as execuções foram perdidas devido a 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, ela não poderá ser recuperada. Se as execuções foram 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 Build.Cleanup capacidade 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, 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 isso, acesse Agente>Capacidades e defina Build.Cleanup como 1.
O que acontece com o compartilhamento de arquivos do Artifacts quando o build é excluído
Quando um build com compartilhamento de arquivos do Artifacts é excluído, uma nova tarefa de build é colocada na fila em um agente de build para limpeza desses arquivos. Um agente é escolhido para executar essa tarefa com base nos seguintes critérios: Há um agente com funcionalidade Build.Cleanup 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. Isso 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 um build for excluído, aplique-os em uma tarefa de pipeline, adicione-os manualmente fora do pipeline ou mantenha o build 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. No entanto, rótulos ou marcas criados automaticamente pela tarefa Fonte durante um build são considerados artefatos de build e são excluídos juntamente 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 de vários estágios para representar sua versão e consumir outro pipeline YAML nele como um recurso. O pipeline de recursos será mantido automaticamente, desde que o pipeline de liberação seja mantido.