Integração Contínua
"Integração contínua consiste em integrar o trabalho diversas vezes ao dia, assegurando que a base de código permaneça consistente ao final de cada integração."
Repositório
- Crucial no processo de integração contínua
- Desenvolvedores trabalhando junto
- Sistema de Controle de versão centralizado
- Função "desfazer"
- Compartilhar informações
- Evitar retrabalho
Integração
- Desenvolvedor realiza alterações no código
- Executa a suite de testes
- Gera build do sistema
- Integra o código
Integração Contínua
- É o processo de Integração executado constantemente, evitando acúmulos
- Mais fácil de encontrar erros em pequenas alterações
- Automatização de builds
- Build manual: cada desenvolvedor acaba gerando build diferente um do outro
Ferramentas
Travis CI
- Serviço
- Fácil integração ao GitHub
- Somente GitHub
- Configuração simples
.travis.yml
language: python
env:
- DJANGO=1.7
python:
- "2.7"
install:
- sudo apt-get install python2.7 python-pip
- pip install -r requirements.txt
before_script:
- cp configuration/databases.py.template configuration/databases.py
- cp configuration/security.py.template configuration/security.py
- python manage.py makemigrations
- python manage.py migrate
script:
- python manage.py test
after_success:
- coveralls
notifications:
slack: busine-me:vHgBvWEGnKVRabVoYSTzd1tq
Jenkins
- Server-based
- Escrito em Java
- Precisa de um servlet container
- Compatível com a maioria dos sistemas de controle de versão
- Muitos plugins
Integração Contínua
By Matheus Fernandes
Integração Contínua
- 815