Motivação
O processo de integração contínua é muito importante para o desenvolvimento e manutenção de um software. O objetivo principal de utilizar a integração contínua é verificar se as alterações ou novas funcionalidades não criaram novos defeitos no projeto já existente. Atualmente o ATER não possui nenhum processo de qualidade e checagem de código automatizado. Os testes são elaborados e aplicados diretamente pelos programadores. Com isso foi discutido a implantação do processo de IC no ATER, devido ele estar se tornando um software robusto e complexo, sendo assim, simples alterações podem afetar grande parte do software.
Cenário
Cenário de implantação da IC
Ferramentas
SonarQube
É uma plataforma Open Source para análise de código continuamente.
SonarQube oferece relatórios sobre código duplicado , padrões de codificação , testes unitários , cobertura de código, complexidade do código, comentários, erros e vulnerabilidades de segurança.
GitLab
Atualmente já utilizamos o GitLab da RNP. Para implementação da integração contínua é necessário somente a integração com o Servidor de Integração contínua.
Jenkins
Jenkins é um servidor de automação de código aberto escrito em Java . A Jenkins ajuda a automatizar a parte não humana do processo de desenvolvimento de software , com integração contínua e facilitando aspectos técnicos de entrega contínua .
Descrição do processo:
- Codificação é feita nas máquinas locais.
- Desenvolvedor aplica testes unitários, realiza testes no ambiente virtual e faz commit das alterações no Gitlab.
- Jenkins faz um pull dessas alterações e realiza os testes, juntamente com o SonarQube.
- É gerado um pacote.
- Pacotes são atualizados no ambiente de produção.
*Uma descrição mais detalhada do processo pode ser realizada durante a implantação da IC.
Implantação:
A recomendação é que as ferramentas sejam implantadas de forma gradual, realizando testes e experimentando configurações.
O SonarQube e o Jenkins executam em uma máquina servidora.