Processo de Integração Contínua

 

 

1. Processo de Integração Contínua

 

O Processo de Integração Contínua (IC) foi dividido em dois grandes fluxos: primeiro é necessário efetuar as configurações necessárias para que a infraestrutura do projeto esteja hábil (Implantação do Processo de IC), em seguida há a execução do processo, neste fluxo explicamos as atividades rotineiras com o uso da IC.

 

 

Macro Fluxo do Processo de Integração Contínua

 

1. Implantação do Processo de Integração Contínua

 

Antes de configurar as ferramentas é preciso que haja a definição de qual nível de maturidade da IC será aplicada ao projeto.

 

 

 

 Níveis de Maturidade da Integração Contínua

 

Depois de definido o nível de maturidade, é preciso realizar as configurações básicas seguindo as orientações do Guia de Configurações da Integração Contínua

Depois de finalizada essa etapa de implantação, os requisitos básicos para a execução do processo de Integração Contínua estarão prontos. O próximo tópico trata do dia a dia da Integração Contínua de acordo com o nível de maturidade aplicado.

 

2. Execução do Processo de Integração Contínua

 

 

2.1 Execução no Nível de Maturidade 0

 

O Gerente de Projetos do órgão solicita a alteração através do Redmine. Depois que a Fábrica de Software finaliza esta solicitação, e envia o código para o GIT através do comando commit/push, o GIT faz a rastreabilidade do código alterado com a tarefa solicitada no Redmine e o Redmine apresenta as alterações realizadas no código. Após o status da tarefa ser atualizada, o Redmine envia notificação ao Gerente de Projetos e o mesmo pode visualizar as alterações realizadas no próprio Redmine.

 

 Atividades do Nível de Maturidade 0

 

 

2.2 Execução no Nível de Maturidade 1

 

No fluxo anterior (Nível de Maturidade 0), a Fábrica de Software realiza o comando de commit/push na ferramenta GIT onde o código fonte é armazenado. Então o Jenkins, que é responsável por orquestrar as atividades da IC, executa três grandes atividades:

  1. Jenkins Parte I

  2. Jenkins Parte II

  3. Publicar Versão

        

Atividades do Nível de Maturidade 1

 

              2.2.1 Jenkins Parte I

  O Jenkins baixa o código fonte do GIT e verifica se pendências de bibliotecas no projeto no Jfrog.

 

 

Jenkins Parte I

 

             2.2.2 Jenkins Parte II

 

O Jenkins, através do Maven: 1 - Compila o código fonte; 2 - Gera o código binário; 3 - Verifica se existem scripts de teste a serem executados, se sim, solicita que o Flyway os execute.

 

 

 

Jenkins Parte II

 

Depois que o Jenkins executa as Partes I e II a nova versão é publicada no ambiente de homologação e o Gerente de Projetos é notificado para que ele possa homologar a nova versão do produto.

 

2.3 Execução no Nível de Maturidade 2

 

Neste nível de maturidade é realizada as atividades de execução dos testes automatizados. Esta atividade é realizada após as atividades das partes I e II do Jenkins, ou seja, depois que o arquivo binário é gerado e os scripts de teste executados.

 

 

 

Atividades do Nível de Maturidade 2

 

Durante o fluxo de Execução dos Testes Automatizados o Jenkins, através do Maven, solicita que o JUnit execute os scripts de testes tanto dos implementados no Junit quanto dos do Selenium (se houver scripts de testes de integração).

 

 

 Execução dos Testes Automatizados

 

2.4 Execução no Nível de Maturidade 3

 

A verificação estática da qualidade do código fonte é realizada através da execução do SonarQube, esta atividade é realizada antes da compilação ser iniciada.

 

 

Atividades do Nível de Maturidade 3

 

O Jenkins solicita que o SonarQube seja executado. Esta ferramenta analisa a estrutura do código, verifica as normas de codificação, a cobertura dos testes de unidade, código duplicado, bugs, vulnerabilidades e outros.

 

 

Verificação da Qualidade do código fonte

 

No vídeo a seguir é possível visualizar as principais atividades realizadas no processo:

 www.youtube.com/watch?v=TLmhyDdFYrU 

 

Com a explanação do fluxo do processo de Integração Contínua é possível perceber que, depois do ambiente configurado, as atividades do Gerente de Projetos se resume apenas em Solicitar a Tarefa e Homologar a Tarefa. As atividades de compilar o código-fonte, realizar o deploy, verificar a qualidade do código fonte, executar script de testes, estão automatizadas e são orquestradas pela ferramenta Jenkins.