"O que é integração contínua?"
Vamos ver o que o Wiki nos diz sobre esta questão : Integração contínua (CI, do inglês Continuous Integration) é uma prática de desenvolvimento de software que consiste em mesclar cópias de trabalho em um branch de desenvolvimento principal comum várias vezes ao dia e realizar compilações automatizadas frequentes do projeto para o início. detecção de potenciais defeitos e soluções para problemas de integração. Assustador, não é? Vamos tentar explicar este termo em palavras simples: Integração contínua é um sistema de construção e teste automatizado de software com determinadas configurações em determinadas máquinas, a fim de detectar bugs e incompatibilidades. Ok, sem problemas, descobrimos, mas surge a seguinte questão lógica:Por que precisamos de CI?
Vamos imaginar que você está escrevendo um projeto grande e há necessidade de adicionar/alterar funcionalidades. Você escreve, escreve testes, inicia com sucesso e tudo parece estar bem, mas não. Há situações em que uma alteração em uma funcionalidade afeta outra, outra em uma terceira e assim por diante, até que um bug apareça em algum lugar e ocorra um erro. Sim, você pode dizer que este é provavelmente um projeto mal elaborado e pode estar certo, mas e se não for, e essas conexões realmente deveriam estar lá? E se você estiver escrevendo e criando um projeto mais de uma vez, o que geralmente acontece? Você executou testes em sua funcionalidade recém-escrita e eles deram um resultado positivo. Você fez um commit rápido, depois empurrou para algum lugar e já está pensando em como vai fumar um charuto em casa enquanto bebe uísque caro, mas não. Infelizmente, seu colega ou chefe, não importa quem, diz que por causa do seu commit, toda a compilação travou. Você diz com perplexidade que é um programador, já testou tudo. Mas muitas vezes simplesmente não há tempo para testar constantemente todo o projeto, e você testou apenas o trecho de código no qual fez alterações, e não toda a montagem como um todo. É aqui que a CI vem em nosso auxílio. A cada push para qualquer recurso, o CI construirá seu projeto do zero, executará TODOS os testes e somente se todos os testes passarem e o projeto for construído, a construção receberá o status de aprovação . Caso contrário, você terá a oportunidade de voltar e ver o que deu errado. Então, é hora de fazer a pergunta “Por que isso e não de outra forma?” e dê uma olhada na implementação do software. Exemplo Como já disse, o artigo é destinado a quem conhece Maven e Git. Portanto, espero que você saiba como e o que faço além de configurar CI, etc.-
Primeiro, vamos criar um projeto de teste simples do Maven e criar uma classe nele que imprima “Hello World!” e executa alguma operação simples, e vamos escrever o teste mais simples para esta classe.
Como resultado, deveríamos ter uma estrutura de projeto primitiva:
Todas as fontes estarão no meu GitHub. Não importa o que você escreve no seu Main e quais testes serão realizados.
-
Enviamos nosso projeto para o GitHub.
-
Agora vem a parte divertida. Da CI, escolhi o Travis CI devido à sua disponibilidade e confiabilidade. Travis usa GitHub para hospedar seu código-fonte.
Então, acesse o site do Travis CI e faça login via GitHub. No perfil conectamos nosso projeto:
Tudo fica pronto para montagem a cada empurrão, mas a questão é COMO montar?
-
Voltamos à nossa querida IDEA e criamos um arquivo .travis.yml
Este arquivo é responsável pela configuração de compilação do Travis. Vejamos a configuração mais popular:
- Você precisa especificar o idioma em que o projeto será implementado;
- Especifique o caminho para os diretórios para tornar a construção mais rápida;
- Especifique o método de notificação sobre montagem bem-sucedida ou malsucedida.
Esta é a aparência de uma configuração típica do Travis:
# https://docs.travis-ci.com/user/languages/java/ language: java jdk: oraclejdk9 # Improve Build Speed https://dzone.com/articles/travis-ci-tutorial-java-projects cache: directories: - $HOME/.m2 # Notifications https://docs.travis-ci.com/user/notifications/ notifications: email: recipients: - qThegamEp@gmail.com on_success: always # default: change on_failure: always # default: always
Adicionei comentários, com links, para maior clareza.
-
Entramos novamente no GitHub e abrimos o site do Travis , selecionamos o projeto e monitoramos a construção. Como resultado, recebemos uma notificação sobre uma compilação bem-sucedida:
Também no site podemos ver um crachá com a montagem bem-sucedida do nosso projeto, que podemos inserir em nosso README.md:
-
Meu projeto de teste que você pode visualizar/baixar se não entender alguma coisa;
-
Na verdade, o próprio site do Travis CI ;
-
Tutorial no site oficial sobre como configurar e usar o Travis CI;
-
Bom vídeo ;
- Outro tutorial ;
GO TO FULL VERSION