Ambiente de integração contínua com Jenkins

Em um ambiente de produção de software, a prática da Integração Contínua(CI) é uma ótima opção da métodologia ágil para o processo como parte da rotina, para alterações de código na ramificação principal de um repositório, e testes nas alterações com o máximo de antecedência e frequência possível, onde os desenvolvedores integrem os códigos todos os dias, passado ao cliente a ideia de continuidade.

A vantegem de um ambiente com Integração Contínua é a disponibilidade de manter um fluxo minimamente controlado e chance de falhas quase inexistentes, controle de branches dos ambientes de desenvolvimento, homologação e produção separados com geração de versão disparada e disponibilizada automaticamente ou manualmente pelo servidor de automação, sem interrupção. 

Com ferramentas como o Jenkins, essa métodologia pode ser aplicada com maior facilidade. Baseado em Java, o Jenkins ajuda a automatizar o processo de desenvolvimento de software por integração contínua e facilita certos aspectos da entrega contínua. 

Vamos montar um servidor de CI com jenkis na Absam para o desemvolvimento de um projeto simples como exemplo.

Para isso iremos instalar o jenkis a partir de um docker, caso não tenha um docker instalado no seu servidor Cloud Server na Absam, você pode instalar seguindo esse tutorial: https://absam.io/faq/content/1/62/pt-br/como-instalar-docker-no-cloud-server-com-ubuntu.html

Utilize o comando para instalar o jenkis: 

> docker pull jenkins/jenkins:lts

Em seguida para rodar:
 
> docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts
 
Pronto! jenkins esta instalado e rodando na porta 8080 do seu servidor Cloud Server, para acessar vá ao navegador e acesse pelo endereço ip do seu servidor dessa forma: http://<endereco_ip>:8080 
 
Ao acessar a primeira vez o endereço ele ira solicitar uma chave para password do administrador, a qual você poderá adquirir no local indicado na tela por ele. 

Na tela seguinte recomendo que você siga instalando os plugins sugeridos, depois você pode reavaliar e deixar só o que for usar:

Na próxima etapa você cria o seu usuário ou continua como admin e em seguida define as configurações da instancia do seu servidor de automação.

 

Navegue por Gerenciar Jenkins > Gerenciar Plugins > Acesse a aba disponíveis

Você deverá instalar e configurar:

Build Monitor View — Será possível acompanhar os builds dos jobs que você criar

Periodic Backup — Vai ajudar você a manter as configurações de todo o seu jenkins (configurações gerais, de jobs, plugins)

Publish Over SSH — Vai possibilitar comunicação SSH com servidores locais ou na nuvem

Role-based Authorization Strategy — Gestão mínima de credenciais ao Jenkins

xUnit — Vai possibilitar gravar seus reports de testes

E um plugin de notificação, existes no link https://plugins.jenkins.io/ui/search?query=notification a depender do seu gosto e do tipo de ferramenta que usa para sua equipe.

Com essas ferramentas instaladas você pode montar uma gama variada de testes e pipelines para seu projeto. 

Você pode montar incialmente um job “construir um projeto de software free-style”, primeira opção da lista de jobs, que pode montar um jenkis para seu projeto do git.

Selecione para isso nessa tela a opção git e adicione o endereço do repositório git do seu projeto com as credenciais para o mesmo adicionando no botão add em credentials. e a branch é dev que ira utilizar para o desemvolvimento.

Selecione nessa configuração por exemplo o consultar periodicamente, que definirá o tempo que o Jenkins verificará se existe algum código novo na branch especificada, a expressão que especifiquei não é recomendada pois a verificação acontece a todo segundo, na interrogação ao lado deste campo existem exemplos de como combinar uma expressão mais adequada.

 

Com estas configurações iniciais quaisquer alterações que forem feitas já estarão sendo capturadas pelo seu job, e você poderá acompanhar a entrega de seus artefatos, acompanhamento de builds, notificações, backup e relatório de testes com as configurões utilizando os plugins citados anteriormente.

Existem diversas possibilidades com Jenkins, algumas utilizam estratégias de pipelines, Jenkinsfile que são muito interessantes para serém implemetas no projeto de sua equipe. 

A documentação para o Pipeline do Jenkins pode ser acessada aqui: https://www.jenkins.io/doc/book/pipeline/ 

Esperamos que com essa pequena pratica lhe dê uma experiencia do poder que a Integração Contínua pode fazer para ajudar a equipe como um todo no desenvolvimento de boas praticas ágeis.