O TeamCity reúne vários recursos que vão turbinar seus builds. Neste tutorial, vamos explorar como usar executores específicos e por que é interessante usá-los.
O executor de build é uma parte do TeamCity que permite a integração com uma ferramenta de build específica (Ant, MSBuild, linha de comando e assim por diante). Um executor de build fornece configurações que permitem especificar quais tarefas de build devem ser executadas, qual versão da ferramenta de build deve ser usada, qual imagem do Docker/Linux deve ser usada como container e assim por diante. Em uma configuração de build, um executor de build define como executar um build e relatar seus resultados. O TeamCity oferece muitos executores de build prontos para uso, incluindo .NET, Maven, Gradle, Docker, Python, Node.js e muitos outros.
Vamos abrir e editar uma configuração de build. Aqui, temos uma etapa de build: uma etapa de build em linha de comando. O script lida com os seguintes comandos:
cd
para um diretório calculator-service.mvn clean package
..jar
em um bucket privado do S3. Aqui, vamos nos livrar da etapa mvn clean package
e usar os recursos do Maven específicos do TeamCity para isso. Podemos simplesmente remover a linha no script personalizado e clicar em Save:
Depois disso, vamos adicionar uma nova etapa de build. O TeamCity sugerirá a escolha de um executor específico:
Para cada tecnologia com a qual o TeamCity se integra, você pode encontrar um executor específico. Por exemplo, se você deseja compilar projetos .NET, deve escolher um executor .NET. Se quiser executar scripts de linha de comando, você usará um executor de linha de comando. Da mesma forma, você usaria um executor do Docker para etapas específicas do Docker, um executor do Gradle para projetos do Gradle e assim por diante.
Você pode encontrar a lista completa dos executores de build do TeamCity na documentação.
Como estamos trabalhando com um projeto Maven, vamos escolher Maven na lista suspensa. Depois disso, vamos preencher alguns campos que o TeamCity sugere nessa etapa.
Nosso arquivo pom.xml
está no diretório calculator-service, então vamos escolher a pasta correta clicando no ícone de árvore. Como você tem uma bela visualização em árvore de todos os diretórios, você não precisa digitar o nome do diretório (e evita cometer erros de ortografia). Basta selecionar o diretório na lista.
Você pode executar a etapa mvn clean package
dentro de um container do Docker, fornecendo um nome de imagem do Docker do hub do Docker, por exemplo, maven:latest
. O TeamCity buscará essa imagem, iniciará transparentemente um container do Docker a partir dela, executará seu mvn clean package
dentro dela e, em seguida, descartará o container.
Para continuar com a configuração manual de etapas de build, clique neste link:
No TeamCity, é possível escolher um executor de cobertura específico. Por exemplo, você pode adicionar os executores de cobertura de código IntelliJ IDEA ou JaCoCo, em vez de escrever tudo diretamente dentro do seu arquivo pom.xml
.
Vamos adicionar com.jetbrains.teamcity.*
como um nome de padrão de pacote. O TeamCity analisará os pacotes cujos nomes correspondem a esse padrão para cobertura de código.
O TeamCity também permite configurar opções avançadas. Por exemplo, você pode escolher diferentes versões do projeto Maven ou selecionar uma versão Java específica para executar todo o projeto.
Com todas essas opções de UI, você não precisa se preocupar se a invocação da linha de comando vai funcionar ou não. O TeamCity cuidará disso para você.
Agora, temos o script de linha de comando em execução e a etapa do Maven que vem depois. Queremos reordenar nossas etapas de build para que mvn clean package
seja executado primeiro, seguido depois pelo upload para o S3 em linha de comando.
Depois disso, basta clicar em Run, e tudo deve funcionar conforme o esperado.
Concluída a execução do build, você pode acessar a página de visão geral do build. Aqui, você verá novas abas, como Maven Build Info e Code Coverage, bem como uma nova seção para resultados em Tests e Code Coverage.
Informações de build do Maven
Na página Maven build info, você terá uma visão geral de quais metas você executou com qual versão específica do Maven. Você também verá os artefatos produzidos, como o arquivo .jar
que o Maven produziu.
O relatório também mostra todas as dependências específicas com suas versões que o Maven extraiu para esse build específico. Isso fornece uma visão geral das bibliotecas incluídas no seu build. Também é útil para fins de depuração.
Você também verá todos os plug-ins do Maven eficazes que foram ativados durante esse build.
Página de visão geral do teste
A página de visão geral dos testes, que você obtém gratuitamente usando o executor Maven, fornece muitas informações úteis. Aqui está o que você pode ver no relatório:
Cada teste também possui um histórico que fornece todas as informações essenciais sobre o teste. O histórico de testes é útil quando você precisa investigar problemas que possam surgir com os testes, como "Por que esse teste de repente está demorando mais? É um teste instável?", e outros semelhantes.
Cobrimos relatórios de testes detalhadamente neste vídeo.
Relatório de cobertura de código
O relatório de cobertura de código nos fornece informações sobre as classes e métodos utilizados, bem como a porcentagem de código coberto pelos testes.
Tudo o que você precisa fazer é selecionar algumas opções suspensas no executor de cobertura de código do IntelliJ IDEA para obter todos esses relatórios na UI do TeamCity.
Isso é tudo por enquanto! Assista a outros tutoriais para saber como usar os recursos específicos do TeamCity, como relatórios de teste ou de cobertura de código.
Bons builds!
Este tutorial mostra como usar o TeamCity para executar os scripts de linha de comando que são a base essencial dos seus pipelines de build.
Este vídeo aborda a configuração de um build para produzir e carregar artefatos, executar o build e baixar os artefatos através da interface do TeamCity.
No TeamCity, você pode facilmente obter dados de seus builds com a ajuda de artefatos. Neste tutorial, veremos mais de perto como trabalhar com artefatos no TeamCity.