IC - Integração Contínua
Fernando Valente e Marcello Vaz
Possibilitar que seu software
esteja permanentemente em um
estado funcional
Objetivo
Como?
1) 3 itens fundamentais
Controle de versão
Todo projeto deve estar em um
único repositório
2) Processo automático de compilação
Menos intervenção humana
Possibilidade de auditoria no processo
de compilação quando algo der errado
3) Aceitação da equipe
Check-ins regulares
Os check-ins devem acontecer
regularmente ao longo do dia
Mudanças menores reduzem a
possibilidade de falha
Início
Esse processo reduz grandes
conflitos com vários arquivos
Compilar pode ser != de sucesso
Baixa cobertura de testes equivale a
baixa confiabilidade no código
3 testes que devem ser executados
Teste unitário
Testa pequenos comportamentos
de sua aplicação
Teste de integração
Testa o comportamento de vários componentes de
sua aplicação utilizando banco de dados, sistemas
de arquivos etc.
Teste de aceitação
Validação de um software com o uso de
cenários próximos a realidade
Importante!
IC é uma prática e não uma ferramenta!
Mas …
Existem ferramentas :)
Nome Pago Testes Nuvem
Jenkins Não Sim Não
Cloudbees Jenkins Sim Sim Sim
Hudson Não Sim Não
CruiseControl Não Sim Não
CircleCI Sim/Não Sim Sim
BuildBot Não Sim Sim/Não
Bamboo Sim/Não Sim Sim
TravisCI Sim Sim Sim
Shippable Sim/Não Sim Sim
CodeShip Sim Sim Sim
SemaphoreCI Sim Sim Sim
Melhor custo benefício em nossa opinião
Jenkins
“Continuamente é mais vezes do
que você pensa”
Mike Robert

Intodução a Integração Contínua