Como executar scripts de linha de comando

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.

Criamos um repositório do GitHub para fins de demonstração:

github.com/marcobehlerjetbrains/buildpipelines. Sinta-se à vontade para fazer um fork dele e seguir as instruções.

O repositório tem 2 microsserviços: Authorization-Service e Calculator-Service. Você pode copiar a URL, acessar seus serviços do TeamCity e criar um novo projeto a partir da URL do repositório. Como este é um repositório público, você não precisa inserir uma senha ou um token de acesso.

tutorials-img

Na próxima etapa, o TeamCity se conectará ao repositório e criará um projeto a partir dele. Ele também mostrará o branch padrão, que é o branch principal que será extraído a cada 60 segundos para quaisquer alterações e acionar builds.

Você também pode especificar quais outros branches monitorar usando curingas.

tutorials-img

Definindo a configuração de build no TeamCity

Uma configuração de build no TeamCity é uma tarefa. Quando você configura um projeto, o TeamCity verifica os arquivos no seu repositório e detecta automaticamente as etapas de build para você.

tutorials-img

Neste tutorial, não continuaremos com as etapas de build autodetectadas, porque temos nosso próprio script de linha de comando para executar. No entanto, vale a pena observar que o TeamCity pode verificar o repositório VCS de origem de um projeto e detectar automaticamente etapas de build adequadas em Node.js, Kotlin, Python, Ant, NAnt, Gradle, Maven, MSBuild, arquivos de solução do Visual Studio, PowerShell, arquivos de projeto Xcode, Rake e projetos do IntelliJ IDEA.

Configurando etapas de build

Para continuar com a configuração manual de etapas de build, clique neste link:

tutorials-img

Como queremos executar um script de linha de comando, vamos escolher Command Line no menu suspenso.

tutorials-img

Na próxima etapa, vamos escolher a opção Run Custom Script no menu suspenso e colar nosso script de build no campo apropriado. Vamos executar o comando mvn clean package. Assim como muitas outras ferramentas, todos os nossos agentes de build têm esse pacote instalado por padrão.

mvn clean package compilará as fontes Java, executará alguns testes e criará um arquivo .jar.

Na etapa de implantação, estamos executando a ferramenta de linha de comando da AWS e copiando esse arquivo .jar para um bucket privado do S3. Depois, só precisamos clicar em Save.

tutorials-img

Antes de clicar no botão Run, precisamos especificar as credenciais do nosso bucket AWS S3: um ID de chave de acesso e o segredo da chave de acesso. Uma das maneiras de fazer isso é usando Parameters no TeamCity.

Adicionando parâmetros

Para fazer isso, clique em Parameters | Add New Parameter. Por enquanto, vamos usar uma variável de ambiente. Insira o nome, que é AWS_ACCESS_KEY_ID. Você também precisará selecionar o tipo do novo parâmetro – Environment variable (env.) no nosso caso – e inserir o valor, que é o ID da chave de acesso verdadeira.

Observação: a chave de acesso que estamos usando é apenas para fins de demonstração. Portanto, você não poderá reutilizar essa chave exata.

tutorials-img

Também queremos editar o parâmetro e definir o tipo como Password. Isso significa que o TeamCity ocultará o valor do parâmetro não só na UI, como também nas mensagens de log e em qualquer outro lugar.

tutorials-img

Você verá que o ID da chave de acesso já está mascarado.

tutorials-img

Da mesma forma, podemos adicionar outra variável de ambiente: a chave de acesso secreta. Depois disso, seremos capazes de executar o build.

Para fazer isso, clique no botão Run, que redirecionará para a página de visão geral. Enquanto o TeamCity está executando o build, ele exibirá os logs de build, explicando o que está acontecendo com todos os detalhes.

tutorials-img

Assim que a execução do build terminar, o TeamCity exibirá o status e os dados do build, como quando o build foi acionado e por quem, quanto tempo levou para ser executado e qual agente de build foi usado.

tutorials-img

Como estamos usando scripts de linha de comando, a única saída efetiva que temos é o log de build. Se decidirmos usar um executor do TeamCity específico (por exemplo, o executor Maven), também obteremos um relatório de teste, um relatório de cobertura e muitos outros recursos, como testes paralelos – tudo pronto para uso.

Acessando logs de builds

Para acessar o log de builds, clique na guia Build Log na página de resultados de build. O TeamCity facilita a leitura dos logs! Em vez de forçar você a baixar o log de builds completo na sua máquina (o que você ainda pode fazer) e abri-lo com o Notepad++, o TeamCity recolherá o log de builds e o tornará facilmente pesquisável com Ctrl+F.

tutorials-img

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!

Para obter mais informações, consulte a documentação da linha de comando do TeamCity.