O documento discute a integração contínua e as ferramentas para implementá-la. Resume que a integração contínua automatiza o processo de desenvolvimento através de commits frequentes, builds e testes automatizados para reduzir riscos e aumentar a qualidade do código.
2. Desenvolvimento
O processo de desenvolvimento
• 1 developer • + developers e/
– Develop ou + módulos
– Compile – Develop
– Test – Integrate
– Deploy – Compile
– Test
– Deploy
3. Desenvolvimento
Aumento da complexidade e riscos associados
• Ausência de uma versão deployable
• Descoberta tardia de problemas
• Pouca transparência
• Código de má qualidade
4. Desenvolvimento
O que é Qualidade?
• Característica de superioridade
• Percepção
• Subjectivo
• Nope! É mensurável!!!
– Legibilidade
– Segurança
– Performance
– …
8. Integração
Con-nua
O Tao de CI!
• Commits frequentes
• Não submeter código “partido”
• Builds “partidos” são prioritários
• Test-driven development
• 100% sucesso em todos os testes
9. Integração
Con-nua
Modelo
user
1
user
2
user
n
Feedback
dev
1
Poll
dev
2
Commits
SCM
CI
Server
dev
n
Build
.
Tests
.
Package
.
Deploy
10. Integração
Con-nua
Vantagens
• Reduz risco
– early detection
– mensurabilidade de software health
– redução de assunções
• Automatiza processos
– sempre executado
– nenhum passo é esquecido
• Deployable software
11. Integração
Con-nua
Vantagens
• Visão clara do projecto
– métricas
– suporte à decisão
• Confiança
– Build de integração
– Menor resistência à mudança
– A more confident programmer
== a happier programmer
== a better product
12. Integração
Con-nua
Desvantagens (alegadamente…)
• Overhead para manter o sistema
• Demasiadas mudanças iniciais
• Custos adicionais
• Test-driven development
– Esta é compreensível…
26. Ferramentas
Apache Ant
• Build tool
• OS agnostic
• Tabs e espaços não são problema…
• Utiliza classes Java – facilmente extensível
• Configuração XML
33. Ferramentas
Deployment no SAPO Fotos
• Dois níveis de integração no servidor CI
– 1º nível: desenvolvimento diário
– 2º nível: integração de desenvolvimentos
maduros
• Geração de release packages (2º nível)
– sapofotos-release-build.168.tar.gz
• Colocação manual nas várias máquinas
– scp
34. Ferramentas
Deployment no SAPO Fotos
• Quatro comandos apenas:
– # tar -xzf sapofotos-release-build.168.tar.gz
– # cd sapofotos-release-build.168
– # ant build
– # ant rollout
35. Ferramentas
Deployment no SAPO Fotos
• Para versão debug (antes de fazer rollout)
– # ant build-debug
• Após rollout, if sh*t happens…
– # ant rollback