A integração contínua é uma prática originada no eXtreme Programming (XP) que tem como principal objetivo garantir que cada atualização do código não gere tantos impactos em uma aplicação em desenvolvimento.

Dessa maneira os desenvolvedores do time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Assim, existe uma redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente. É fundamenta que a equipe saiba trabalhar em grupo e o versionamento de código centralizado.

Integração

Para entender melhor, no cenário geral seria:

  • O desenvolvedor faz o seu commit no repositório.
  • O servidor de integração contínua detecta o commit, faz um Checkout lança as operações de compilação e de testes
  • Em caso de falha uma notificação é gerada para o gerente de projeto e/ou para a equipe de desenvolvimento.
  • O desenvolvedor envolvido pelo erro é faz uma atualização do repositório de gerenciamento de configuração e corrige a anomalia.

Onde:

  • Build: É o conjunto de passos necessários para compilar, criar entregas na execução dos testes (funcional, unitários, IHM, etc.);
  • Commit: É a operação que permitirá a validação das atualizações do código-fonte no diretório local de trabalho da máquina do desenvolvedor, através da ferramenta de gerenciamento de configuração (como GIT). O commit é feito do diretório local de trabalho para o repositório centralizado de versionamento.
  • Update: Esta operação permite a atualização a partir do repositório da ferramenta de gerenciamento de configuração do diretório local.
  • Checkout: É a operação de extração de uma versão de um projeto em desenvolvimento do repositório do gerenciador de configuração em um diretório local de trabalho.

Ferramentas

Existem diversas ferramentas, como o Jenkins por exemplo. Em geral são ferramentas livres e estão disponíveis para download gratuitamente.

A chave para uma boa integração, como visto anteriormente, é um ambiente de controle de versão centralizado, builds e testes automatizados.

As ferramentas de integração contínua permite que seja configurado o seu sistema, o ambiente de desenvolvimento, permite que seja configurado o sistema de build automatizado, integrar com o repositório de controle de versão, e permite ainda o envio de e-mails de notificação. Isto é importante, pois como o sistema é automatizado, caso ocorram erros, o desenvolvedor pode ser notificado que a integração gerou falhas, para poder ser analisada.

 Conclusão

Para melhorar a produtividade de sua equipe, a integração contínua é o caminho. A redução de erros, que podem ser detectados em pouco tempo e corrigidos de maneira mais rápida e efetiva. Tudo é feito de forma segura, pois os principais processos são automatizados.

Assim, temos a certeza de que o repositório permanece sempre consistente, possibilitando que qualquer desenvolvedor possa obter todo o código do projeto, a qualquer momento.