Integração contínua - Visão geral
A integração contínua foi introduzida pela primeira vez no ano de 2000 com o software conhecido como Cruise Control. Ao longo dos anos, a Integração Contínua se tornou uma prática chave em qualquer organização de software. Esta é uma prática de desenvolvimento que exige que as equipes de desenvolvimento garantam que uma construção e um teste subsequente sejam conduzidos para cada alteração de código feita em um programa de software. Esse conceito foi criado para remover o problema de localização de ocorrências tardias de problemas no ciclo de vida de construção. Em vez de os desenvolvedores trabalharem isoladamente e não se integrarem o suficiente, a Integração Contínua foi introduzida para garantir que as alterações e compilações de código nunca fossem feitas de forma isolada.
Por que integração contínua?
A integração contínua se tornou uma parte integrante de qualquer processo de desenvolvimento de software. O processo de integração contínua ajuda a responder às seguintes perguntas para a equipe de desenvolvimento de software.
Todos os componentes de software funcionam juntos como deveriam? - Às vezes, os sistemas podem se tornar tão complexos que existem várias interfaces para cada componente. Nesses casos, é sempre essencial garantir que todos os componentes de software funcionem perfeitamente uns com os outros.
O código é muito complexo para fins de integração? - Se o processo de integração contínua continuar falhando, pode haver a possibilidade de o código ser muito complexo. E isso pode ser um sinal para aplicar padrões de design adequados para tornar o código menos complexo e mais fácil de manter.
O código segue os padrões de codificação estabelecidos? - A maioria dos casos de teste sempre verificará se o código está aderindo aos padrões de codificação adequados. Ao fazer um teste automatizado após a construção automatizada, este é um bom ponto para verificar se o código atende a todos os padrões de codificação desejados.
Quanto código é coberto por testes automatizados? - Não há nenhum ponto em testar o código se os casos de teste não cobrem a funcionalidade necessária do código. Portanto, é sempre uma boa prática garantir que os casos de teste escritos abranjam todos os principais cenários do aplicativo.
Todos os testes foram bem-sucedidos após a última alteração? - Se um teste falhar, não há sentido em continuar com a implantação do código, portanto, este é um bom ponto para verificar se o código está pronto para passar para o estágio de implantação ou não.
Fluxo de Trabalho
A imagem a seguir mostra um rápido fluxo de trabalho de como todo o fluxo de trabalho de Integração Contínua funciona em qualquer projeto de desenvolvimento de software. Veremos isso em detalhes nos capítulos subsequentes.
Portanto, com base no fluxo de trabalho acima, geralmente é assim que funciona o processo de integração contínua.
Primeiro, um desenvolvedor confirma o código para o repositório de controle de versão. Enquanto isso, o servidor de Integração Contínua na máquina de construção de integração pesquisa o repositório de código-fonte em busca de alterações (por exemplo, a cada poucos minutos).
Logo após ocorrer um commit, o servidor de integração contínua detecta que mudanças ocorreram no repositório de controle de versão, então o servidor de integração contínua recupera a última cópia do código do repositório e, em seguida, executa um script de construção, que integra o software
O servidor de integração contínua gera feedback enviando os resultados da construção por e-mail aos membros do projeto especificados.
Os testes de unidade são realizados se a construção desse projeto for aprovada. Se os testes forem bem-sucedidos, o código está pronto para ser implantado no servidor de teste ou de produção.
O servidor de Integração Contínua continua a pesquisar mudanças no repositório de controle de versão e todo o processo se repete.