Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Azure DevOps Serviços | Azure DevOps Server | Azure DevOps Server 2022
As políticas de retenção controlam quanto tempo as execuções de pipelines, os lançamentos clássicos e os dados de teste são mantidos no Azure DevOps. Estas definições ajudam-no a equilibrar o uso de armazenamento, conformidade e rastreabilidade, definindo quando deve eliminar dados antigos e quais devem manter por mais tempo. Este artigo explica as opções de retenção disponíveis e como se aplicam a pipelines, releases e testes.
Pré-requisitos
| Product | Requisitos |
|---|---|
| Azure DevOps | - Uma organização Azure DevOps. - Um projeto Azure DevOps. |
| Permissões | - Por padrão, pode gerir políticas de retenção se for membro dos grupos Contribuidores, Administradores de Build, Administradores de Projeto ou Administradores de Lançamento. - Para gerir políticas de retenção, precisa de uma das seguintes subscrições: Enterprise, Test Professional ou MSDN Platforms. - Também pode adquirir acesso mensal Planos de Teste do Azure e atribuir o nível de acesso Basic + Test Plans. Para mais informações, consulte Testar o acesso por função de utilizador. |
Importante
O Azure Pipelines já não suporta políticas de retenção por pipeline. Recomendamos que utilize regras de retenção ao nível do projeto.
Configurar políticas de retenção
Para abrir as páginas de definições de retenção no seu projeto e escolher a área de política que pretende gerir, siga estes passos:
Inicie sessão no seu projeto Azure DevOps.
Seleciona
>Definições do projeto.Selecione uma das seguintes opções:
- Em Pipelines, selecione Definições para configurar a retenção de execuções, artefactos, símbolos, anexos e execuções de pull request.
- Em Pipelines, selecione Retenção de Lançamentos para configurar as definições de retenção de lançamentos, incluindo quando os lançamentos são eliminados ou destruídos permanentemente.
- Em Testar, selecione Retention para configurar quanto tempo os testes manuais e automatizados são mantidos.
O pipeline executa políticas de retenção
Na maioria dos casos, não precisas de manter as corridas concluídas indefinidamente. As políticas de retenção de corridas permitem que defina quanto tempo as corridas e os dados relacionados são mantidos antes da eliminação.
Vai ao separador
>Definições nas definições do teu projeto.Na secção Pipelines , selecione Definições:
- Define quantos dias para guardar artefactos, símbolos e anexos.
- Define quantos dias manter as corridas.
- Define quantos dias para manter as execuções de pull request.
- Defina o número de execuções recentes a manter para cada pipeline.
Aviso
O Azure DevOps já não suporta regras de retenção por pipeline. A única forma de configurar políticas de retenção para pipelines YAML e clássicos é através das definições do projeto descritas anteriormente. Não é mais possível configurar políticas de retenção por pipeline.
O número de execuções recentes a manter para cada configuração de pipeline é interpretado de forma diferente consoante o tipo de repositório:
Repositórios do Azure: O Azure Pipelines mantém o número configurado de execuções mais recentes para o ramo padrão do pipeline e para cada ramo protegido no repositório. Um ramo protegido é qualquer ramo com políticas de ramo configuradas.
Por exemplo, considere um repositório com dois ramos:
mainerelease. Se o ramo padrão do pipeline formainereleasetiver uma política de ramo, entãoreleaseé tratado como um ramo protegido. Se configurar a retenção para manter três execuções, o Azure Pipelines mantém as três execuções mais recentes paramain, as três execuções mais recentes parareleasee as três execuções mais recentes para o pipeline de forma geral (independentemente da ramificação).O exemplo a seguir assume que é a corrida mais recente que está listada em primeiro lugar. Mostra quais execuções são mantidas ao configurar a retenção para manter as três últimas execuções (ignorando a definição baseada em dias).
Executar # Filial Retido/Não Mantido Porquê? Corrida 10 principal Retido Últimas 3 para o ramo principal e últimas 3 para a pipeline Corrida 9 Filial1 Retido Últimas 3 para a canalização Corrida 8 ramo2 Retido Últimas 3 para a canalização Corrida 7 principal Retido Últimas 3 para principal Série 6 principal Retido Últimas 3 para principal Execução 5 principal Não retido Não são os 3 mais recentes para a principal ou para pipeline Run 4 principal Não retido Não são os 3 mais recentes para a main ou para o pipeline Corrida 3 Filial1 Não retido Não são os 3 mais recentes para a principal ou para o pipeline Corrida 2 disponibilizar Retido Os 3 mais recentes para lançamento Execução 1 principal Não retido Não são os 3 mais recentes para a principal ou para pipeline O número de dias a reter é calculado a partir dessa data em que a corrida termina. Por exemplo, há duas corridas num ramal principal a 19 de janeiro. A série que terminou mais tarde mantém-se.
Todos os 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 ramo.
Quais partes da execução são excluídas
Quando uma execução é eliminada, os seguintes dados são removidos:
- Registos
- Todos os artefatos de pipeline e construção
- 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 regula os Pacotes Universais, NuGet, npm e outros pacotes.
Quando são apagadas as corridas
Uma execução é eliminada se todas as seguintes condições forem verdadeiras:
- Excede o número de dias configurados nas definições de retenção.
- Não é uma das execuções recentes, conforme configurado nas definições de retenção.
- Não está marcado para retenção indefinida.
- Não é mantido por um lançamento.
As apólices 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 o balanceamento da carga. Não podes mudar este horário.
Definir automaticamente a gestão de retenção nas execuções de pipeline
Os arrendamentos de retenção permitem-lhe prolongar ou controlar a vida útil das execuções de pipeline para além dos períodos de retenção configurados. Pode adicionar ou eliminar leases para a execução de um pipeline usando a Lease API. Pode chamar esta API a partir de um pipeline usando um script e variáveis pré-definidas para runId e definitionId.
Pode definir um contrato de arrendamento por uma duração específica. Por exemplo, pode manter uma execução que seja implementada num ambiente de teste por um período mais curto. Podes manter uma execução implementada em produção por um período mais longo.
Definir manualmente a concessão de retenção em execuções de pipeline
Pode manter manualmente uma execução de pipeline a partir do menu Mais ações na página de detalhes da execução de pipeline.
Excluir uma execução
Podes eliminar as execuções a partir do menu Mais ações na página de detalhes de execução do Pipeline.
Nota
Se alguma política de retenção estiver atualmente aplicada à execução, deve removê-la antes de poder eliminar a execução. Para instruções, veja Detalhes da execução do pipeline: Eliminar uma execução.
Divulgação das políticas de retenção
As políticas de retenção de lançamentos para pipelines clássicos determinam por quanto tempo um lançamento e a sua execução associada são mantidos. Com estas políticas, pode configurar ambas:
- O número de dias para manter cada versão após a sua última modificação ou implementação.
- O número mínimo de lançamentos a manter para cada pipeline.
O temporizador de retenção reinicia-se cada vez que um lançamento é modificado ou implementado numa etapa. A definição de lançamentos mínimos tem prioridade sobre a configuração baseada em dias. Por exemplo, se definir o mínimo para três lançamentos, os três lançamentos mais recentes são mantidos independentemente do número de dias configurados. Ainda podes apagar estas versões manualmente quando já não precisares delas. Para mais informações, consulte as perguntas frequentes mais adiante neste artigo.
Os pipelines YAML e build usam a mesma política de retenção de execuções. Podes ver estas definições em Definições do Projeto>Pipelines>Definições.
Política global de retenção de lançamentos
No Azure DevOps Services, pode visualizar estas definições, mas não pode alterá-las ao nível do projeto.
Pode consultar as definições globais de retenção de lançamentos na página Retenção de Lançamento do seu projeto nas suas definições do projeto:
- Política de retenção máxima: Define o limite superior para o período pelo qual pode reter lançamentos em todos os pipelines de lançamentos. Os autores de pipelines não podem configurar a retenção para além deste limite.
- Política de retenção padrão: Define os valores de retenção padrão aplicados aos pipelines de release. Os autores do pipeline podem substituir estas configurações predefinidas.
- Destruir permanentemente os lançamentos: Controla durante quanto tempo os lançamentos eliminados permanecem antes da remoção definitiva. Pipelines de lançamento individuais não podem alterar esta política.
Política global de retenção de lançamentos
Se usar o Azure DevOps Server on-premises, pode configurar os valores predefinidos ao nível do projeto e os máximos para retenção de lançamentos. Também podes definir quando as versões eliminadas são destruídas permanentemente. (Estão removidos do separador Eliminado no Explorador de Builds.)
- Política de retenção máxima: Define o limite superior para o período pelo qual pode reter lançamentos em todos os pipelines de lançamentos. Os autores de pipelines não podem configurar a retenção para além deste limite.
- Política de retenção padrão: Define os valores de retenção padrão aplicados aos pipelines de release. Os autores do pipeline podem substituir estas configurações predefinidas.
- Destruir permanentemente os lançamentos: Controla durante quanto tempo os lançamentos eliminados permanecem antes da remoção definitiva. Pipelines de lançamento individuais não podem alterar esta política.
Definir políticas de retenção ao nível da coleção
Se usar um servidor no local, também pode configurar a retenção a nível de coleção com regras personalizadas. Estas definições aplicam-se aos pipelines clássicos de compilação e especificam os valores padrão e máximos de retenção para a coleção.
Use a tarefa Copiar ficheiros para guardar dados por mais tempo
Se precisares de manter a saída da compilação por mais tempo do que o período de retenção configurado, copia-a para o teu próprio local de armazenamento usando a tarefa Copiar ficheiros.
Use Copiar ficheiros em vez de Publicar artefatos de compilação porque os dados publicados como artefatos de compilação continuam sujeitos a limpeza por retenção.
FAQ
Se eu marcar uma execução ou uma liberação para ser retida indefinidamente, a política de retenção ainda é aplicável?
N.º A política de retenção do pipeline e os limites máximos definidos pelo administrador não são aplicados quando se marca uma execução ou release individual como retida indefinidamente. Permanece até deixares de o reter para sempre.
Como especifico que os processos implementados em produção devem ser mantidos por mais tempo?
Se usares versões clássicas para implementar em produção, personaliza a retenção no pipeline de lançamentos. Define quantos dias queres manter as versões implementadas em produção e especifica que as execuções associadas a essas versões são mantidas. Esta configuração sobrepõe-se à política de retenção de corridas.
Se usares pipelines YAML multietapa, só podes configurar a retenção nas definições do projeto. Não se pode configurar a retenção por ambiente de implementação.
Não marquei as corridas para serem mantidas indefinidamente, mas muitas estão a ser mantidas. Como posso evitar este comportamento?
Este comportamento pode ocorrer por uma das seguintes razões:
- Alguém do seu projeto marcou as execuções para retenção indefinida.
- Uma libertação consome as corridas, e a libertação mantém um bloqueio de retenção sobre essas corridas. Personalize a política de retenção de lançamentos conforme explicado anteriormente.
Se as corridas já não forem necessárias, ou se as versões que as mantiveram já forem apagadas, pode apagar manualmente as corridas.
Como funciona a configuração para manter os mínimos de lançamentos?
O valor de lançamentos mínimos para manter é definido ao nível da fase. O Azure DevOps mantém sempre esse número de lançamentos mais recentes para a etapa, mesmo que eles estejam fora do período de retenção. Um lançamento conta para este mínimo apenas quando a implementação para essa fase é iniciada. Tanto as implantações bem-sucedidas como as falhadas são contabilizadas. Os lançamentos pendentes de aprovação não são contabilizados.
Como é decidido o período de retenção quando o lançamento é implementado em múltiplas fases com diferentes períodos de retenção?
O período final de retenção é determinado pelas definições Days to retain em todas as etapas onde a libertação é implementada, utilizando o valor máximo entre essas etapas. Os lançamentos mínimos a manter são específicos de cada fase e não mudam consoante se um lançamento foi implementado para uma ou várias fases. A retenção de artefactos associados aplica-se apenas quando um lançamento é implementado numa fase onde essa opção está ativada.
Eu apaguei uma etapa para a qual tenho alguns lançamentos antigos. Que retenção é considerada para este caso?
Após a eliminação de um estágio, as definições de retenção ao nível do estágio deixam de se aplicar. Nesse caso, o Azure DevOps usa as definições padrão de retenção ao 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 pedir uma retenção mais longa?
Para manter uma execução ou release por mais tempo do que os limites de retenção configurados, marque-o como retido indefinidamente. Não existe uma configuração para configurar manualmente um período de retenção mais longo. Para assistência, contacte Azure DevOps Suporte.
Também pode usar APIs REST para baixar informações e artefactos da execução e, depois, guardá-los na sua própria conta de armazenamento ou repositório de artefactos.
Perdi alguns pontos. Há alguma forma de as recuperar?
Se achar que as execuções foram perdidas devido a um erro no serviço, crie um ticket de suporte imediatamente. Se uma definição de build foi apagada manualmente há mais de uma semana, não consegue recuperá-la. Se as execuções foram eliminadas conforme esperado pela política de retenção, não podes recuperá-las.
Como posso usar a função "Build.Cleanup" dos agentes?
Definir a capacidade Build.Cleanup nos agentes encaminha apenas os trabalhos de limpeza para esses agentes, o que mantém os outros agentes disponíveis para o trabalho regular em pipelines. Quando uma execução de pipeline é eliminada, os artefactos armazenados fora do Azure DevOps são removidos por meio de uma tarefa de agente. Se os trabalhos de limpeza saturarem a sua piscina, designe um subconjunto de agentes como agentes de limpeza. Quando qualquer agente tem Build.Cleanup definido, esses são os únicos agentes que realizam trabalhos de limpeza. Para ativar esta definição, vá a Capacidades do Agente> e defina Build.Cleanup para 1.
O que acontece aos artefactos de partilha de ficheiros quando a build é eliminada?
Quando uma compilação com artefactos de partilha de ficheiros é eliminada, uma nova tarefa de compilação é colocada em fila num agente de compilação para limpar esses ficheiros. Um agente é escolhido para realizar esta tarefa com base nos seguintes critérios:
- Existe algum agente com
Build.Cleanupcapacidade disponível? - O agente que executou a compilação está disponível?
- Existe um agente do mesmo pool disponível?
- Está disponível um agente de um grupo semelhante?
- Existe algum agente disponível?
Os resultados de testes automatizados publicados como parte de uma versão são retidos até que a versão seja excluída?
Os resultados dos testes publicados numa fase de lançamento são mantidos de acordo com a política de retenção de testes, e não de acordo com a política de retenção de lançamento. Se precisares de manter os resultados dos testes durante o período de lançamento, define a retenção automática de testes nas definições do Projeto para Nunca apagar. Esta configuração garante que os resultados dos testes só são eliminados quando a versão é eliminada.
Os resultados dos testes manuais são eliminados?
N.º Os resultados dos testes manuais não são apagados.
Como devo proceder para preservar as tags ou etiquetas de controlo de versão?
Se os rótulos ou tags tiverem de ser preservados após a eliminação de uma compilação, aplique-os numa tarefa do pipeline, adicione-os manualmente fora do pipeline ou mantenha a compilação indefinidamente.
Importante
Quaisquer etiquetas ou etiquetas de controlo de versões aplicadas durante um pipeline de compilação que não sejam criadas automaticamente pela tarefa Fontes são preservadas, mesmo que a compilação seja eliminada. Etiquetas ou etiquetas que são automaticamente criadas pela tarefa Fontes durante uma compilação são tratadas como artefactos de construção e são eliminadas com a compilação.
O que acontece com os dutos que são consumidos em outros gasodutos?
As versões clássicas retêm pipelines que consomem automaticamente.
O que acontece com os dutos que são consumidos em outros gasodutos?
As versões clássicas retêm pipelines que consomem automaticamente. Se estiveres a usar YAML, também podes criar um pipeline YAML multiestágio para representar o teu release e consumir outro pipeline YAML nele como recurso. O pipeline de recursos é mantido automaticamente enquanto o pipeline de lançamento for mantido.