Travis CI em seus projetos no Heroku

Eduardo Pitz
4 min readJun 10, 2020

--

Photo by Dane Deaner on Unsplash

Desenvolver um produto de qualidade envolve inúmeros fatores. Um deles, muitas vezes negligenciado, é o meio de implantação (deployment) do sistema. Como nosso Uncle Bob deixa claro em seu livro Clean Architecture, a eficácia de um sistema de software depende do esforço necessário para efetuar a sua implantação. Uma boa implantação precisa ser simples e deve mitigar problemas.

Por sorte, existem inumeras ferramentas no mercado a fim de ajudar nesse processo e esse texto abordará uma delas: A utilização de uma CI/CD.

O exemplo que vou apresentar aqui não é nada complexo e se você for um DevOps, com toda certeza achará até um pouco bobo. A ideia é apresentar algo simples, algo que você poderia utilizar para tirar seus side-projects do papel.

Este é um projeto Spring Boot, se você utiliza outro framework ou linguagem não há um problema.

Continuous Integration

Integração Contínua (CI) é a prática de mesclar frequentemente pequenas alterações de código — em vez de mesclar uma grande alteração no final de um ciclo de desenvolvimento. O objetivo é criar um software mais saudável, desenvolvendo e testando em incrementos menores.

Há inúmeras ferramentes no mercado que podem te auxiliar a manter um bom CI, para este projeto, eu decidi utilizar o Travis CI.

Como uma plataforma de integração contínua, o Travis CI dá suporte ao seu processo de desenvolvimento criando e testando automaticamente as alterações de código, fornecendo feedback imediato sobre o sucesso da alteração. O Travis CI também pode automatizar outras partes do seu processo de desenvolvimento, gerenciando implantações e notificações.

O grande Martin Fowler possui um belo artigo em seu site que pode te apresentar mais informações sobre um bom uso de CI.

Configurando nossa CI

Para começar, acesse o site do Travis e permita que ele tenha acesso ao seus repositórios do Github. Com a sua conta logada, seus repositórios devem passar a serem exibidos no menu Repositories.

Procure pelo seu repositório e habilite o Travi CI para ele.

Agora que o Travis está habilitado para o seu repositório, precisamos ensiná-lo como como buildar um projeto Spring Boot.

Crie um arquivo chamado .travis.yml na pasta raiz do seu projeto e adicione o seguinte conteúdo:

language: java 
jdk:
- oraclejdk8
dist: trusty

Devido a algumas alterações que foram feitas na distribuição linux padrão do Travis, “talvez” você encontre alguns problemas ao utilizar a JDK 8. Com isso, se faz necessário setar o atributo trusty para o parâmetro dist. Com esse cara presente no yaml, informamos o Travis para usar a infraestrutura baseada em Ubuntu Linux Trusty 14.04 e isso resolve os problemas qeue poderiam ser encontrados usando o Xenial.

Pronto, após seu próximo merge na master, o Travic CI irá buildar o seu projeto e executar os testes da sua aplicação. Em caso de sucesso, a situação do build será apresentada da seguinte maneira.

Com o nosso CI funcionando, podemos nos preocupar com a próxima etapa: Automatizar o deploy de nossa aplicação.

Continuous Deployment

O processo de CD pode ser definido como uma continuação do CI. Esta etapa tem como objetivo minimizar o tempo de espera, o tempo decorrido entre o desenvolvimento escrevendo uma nova linha de código e esse novo código sendo usado pelos usuários.

Heroku

Como o próprio site define, o Heroku é uma plataforma em nuvem baseada em contêiner (PaaS). É possível utilizar o Heroku para implantar, gerenciar e dimensionar aplicativos.

A plataforma é elegante, flexível e fácil de usar e possibilita um caminho muito simples para colocar projetos no ar.

Tornando o Travis CI e o Heroku amigos

Para começar, é necessário criar um aplicativo na plataforma. Acesse a sua conta no Heroku, clique em Create New App e defina um nome para seu projeto.

Com o aplicativo criado, vamos configurar seu deploy.

Em seu aplicativo, acesse a aba de deploy e adicione o seu repositório do Github. Com seu repositório vinculado, configure as automações de deploy: Marque a opção Wait for CI to pass before deploy e clique no botão Enable Automatic Deploy.

Pronto.

Seu próximo merge na master, que obtenha sucesso no build do Travis CI, será automaticamente deployado em seu aplicativo Heroku.

Essa abordagem para a configuração de um CI/CD apresenta pontos fracos e pontos fortes. Como meaculpa, e destacando um ponto negativo, reforço que da maneira atual o seu processo de CI não tem conhecimento do deploy. Se isso for um problema, transfira toda a responsabilidade para o seu CI.

--

--

Eduardo Pitz
Eduardo Pitz

Written by Eduardo Pitz

Java, Groovy, Clojure and some coffee :)

No responses yet