Como limitar artefatos de build do TeamCity?

Para economizar espaço em disco e evitar problemas de desempenho, você pode limitar os artefatos armazenados em builds e projetos específicos do TeamCity. Existem três maneiras principais de fazer isso:

  • Empacotar vários arquivos de artefato em um único arquivo.
  • Limitar o tamanho dos arquivos de artefato e o número de artefatos por build.
  • Configurar a limpeza automática de arquivos desnecessários.

Empacotar artefatos de build em um arquivo

O TeamCity pode criar automaticamente um arquivo a partir de artefatos de build antes de publicá-los. Para configurar esse comportamento, abra o General Settings de uma configuração de build e especifique artifact paths (padrões separados por nova linha ou vírgula), no seguinte formato:

[+:|-:]source => target_archive.*, onde:

  • [+:|-:]source – é um caminho para os arquivos ou diretórios a serem publicados como artefatos de build (+:) ou excluídos da publicação (-:). Recomenda-se usar caminhos para fontes relativos ao diretório de check-out do build, embora os caminhos absolutos também sejam aceitos.
  • target_archive.* – é um caminho para um arquivo que o TeamCity deve criar para empacotar artefatos, onde .* é a extensão do arquivo. Os tipos de arquivo suportados são: zip, 7zip, jar, tar e tar.gz. Um caminho de destino não pode ser absoluto – especifique-o em relação ao diretório de check-out do build.

Por exemplo, para empacotar todos os arquivos e subdiretórios armazenados no diretório directory_name no arquivo ZIP archive_name, digite o seguinte no campo Artifact paths:

directory_name => archive_name.zip

Consulte este artigo da documentação para mais detalhes e exemplos sobre como configurar caminhos de artefatos.

Limitar o tamanho e o número de arquivos de artefatos

Você pode especificar o tamanho máximo permitido de um arquivo de artefatos de build e o número máximo de artefatos por build globalmente no servidor do TeamCity. Para fazer isso, use as configurações correspondentes na seção Build Settings de Administration | Global Settings.

Definir regras de limpeza

Você pode instruir o TeamCity a excluir automaticamente artefatos antigos e desnecessários de uma configuração de build específica. Para fazer isso, configure as regras de limpeza em Project Settings | Clean-up Rules:

  • Clique na linha Base rule numa configuração de build que você deseja alterar. Se a linha da regra base estiver oculta, clique em Show 1 inherited rule (por padrão, cada configuração de build herda uma regra básica de seu projeto pai).
  • Na seção Clean artifacts da caixa de diálogo pop-up, selecione a opção Custom policy e especifique uma regra para remover artefatos de build. Por exemplo:
    • Remover artefatos de todos os builds anteriores ao enésimo build bem-sucedido.
    • Remover artefatos de todos os builds com mais de n dias desde o último build bem-sucedido.
    • Remover artefatos por nomes de acordo com os padrões especificados.

      No campo Artifact patterns, insira padrões separados por nova linha de nomes de artefatos para adicionar ou excluir artefatos correspondentes da limpeza. Por exemplo:

      • +:**/file*.* – remove artefatos que contêm “file” no nome.
      • -:**/file*.jar – exclui da limpeza artefatos .jar com “file” no nome.
  • Na seção Dependencies da caixa de diálogo da regra base, você pode especificar se deseja excluir ou preservar artefatos de builds de dependência que são partes de uma cadeia.