Travis CI - GitHub
Introdução
[editar | editar código-fonte]O objetivo desta apresentação é introduzir o conceito de integração contínua assim como apresentar a ferramenta Travis CI integrado com o GitHub.
Conceito de integração contínua
[editar | editar código-fonte]A ideia de integração contínua vem para solucionar a seguinte questão: “Como garantir que esse trecho de código que está sendo alterado não irá quebrar outra parte do sistema?”. Então, Grady Booch[1] propos em sua obra “Object-Oriented Analysis and Design with applications” o conceito de integração contínua. Porém, a ideia ganhou destaque ao ser introduzido por Kent Bech e Ron Jeffries como uma das práticas do Extreme Programming, onde é proposto que a técnica possa ser aplicada várias vezes ao dia.
Martin Fowler[2] define integração contínua como: “Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.”
Travis CI
[editar | editar código-fonte]O Travis CI é um serviço web de Integração Contínua na nuvem integrado com o GitHub. Ele é gratuito para repositórios públicos(travis-ci.org) e pago para repositórios privados(travis-ci.com). Foi desenvolvido em Ruby e seus componentes são distribuídos sob a licença MIT.
Atualmente ele tem suporte para as seguintes linguagens de programação: Android, C, C#, C++, Clojure, Crystal, D, Dart, Erlang, Elixir, F#, GO, Groovy, Haskell, Haxe, Java, Javascript, Julia, Objctive-C, Perl, Perl6, PHP, Python, R, Ruby, Rust, Scala, Smalltalk, Visual Basic.
Como o Travis funciona?
[editar | editar código-fonte]Quando dermos um push no repositório do GitHub, o Travis criará uma máquina virtual em branco, pegar o código-fonte no GitHub, fazer o deploy da aplicação, executar a aplicação a partir das condições estabelecidas e notificar o usuário, se configurado pode ser via email.
Configurando e adicionando o Travis ao seu projeto no GitHub
[editar | editar código-fonte]1) Na página do projeto no GitHub, para adicionar o Travis CI, clicaremos no botão "Settings", marcado por um retângulo vermelho.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Tela01.png/220px-Tela01.png)
2) Após clicado, seremos direcionados para página de configurações do GitHub. Logo em seguida, na sidebar a esquerda da página de configurações, clicaremos em "Webhooks & services", marcado por um retângulo vermelho. Então, será exibido as mesmas informações contidas na imagem a seguir. Iremos agora, adicionar o serviço do Travis CI, na combobox a direita, escrito "Add service", selecionaremos qual serviço desejamos no caso, Travis CI, marcado por um retângulo azul. Ou seja, basta escrever o nome do mesmo, na barra de pesquisa que aparecerá e selecionar o Travis CI, marcado por um retângulo verde.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Tela02.jpg/220px-Tela02.jpg)
3) Ao clicar em adicionar o serviço do Travis CI será necessário, sua autorização através da senha do GitHub.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Tela03.png/220px-Tela03.png)
4) Após ser inserida a senha de confirmação, seremos direcionados a página para a gerenciamento do serviço do Travis CI. Bastando adicionar no formulário abaixo o seu usuário do GitHub e um token de sua preferência. Então clicaremos no botão "Add service".
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Tela04.png/220px-Tela04.png)
5) Será mostrada na parte superior do site abaixo do menu do GitHub uma mensagem informando que foi adicionado com sucesso o serviço.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Tela05.png/220px-Tela05.png)
06) Pronto, agora iremos acessar o site: https://travis-ci.org/ (Site do Travis CI), será necessário um cadastro para se logar no sistema. Supondo que já esteja logado. Vamos adicionar então um projeto clicando no botão marcado na imagem.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Tela06.png/220px-Tela06.png)
7) Selecionaremos qual o projeto desejamos adicionar a ferramenta de integração contínua ao projeto. Caso o projeto não seja encontrado na lista dos seus projetos, basta apertar no botão de sincronizar com o GitHub(Marcado com 01). No caso, foi selecionado o projeto GCS-Travis-CI (Marcando, antes o que estava com um "X" na cor cinza, para a forma com esta representado agora na figura, um sinal de correto verde).
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/88/Tela07.png/220px-Tela07.png)
8) Agora seguindo os passos que foram passados na imagem acima, devemos criar um arquivo cujo nome é ".travis.yml", como exemplo aqui tratado é uma simples configuração vamos apenas configurá-lo para informar ao Travis qual é a linguagem que estamos usando, o comando de teste e qual é o e-mail para o qual ele deve enviar a notificação. Para demais tipos de configuração do arquivo ".travis.yml" há vários templates no próprio site dos Travis CI, cuja documentação é muito boa.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/7e/Tela08.jpg/220px-Tela08.jpg)
9) Pronto agora, iremos para a página inicial do projeto no Travis CI o qual nos depararemos com a seguinte imagem. Na qual, o projeto já esta integrado com o Travis.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Tela09i.png/220px-Tela09i.png)
10) Agora basta seguir com o desenvolvimento, ao dar o push na branch configurada para o Travis agir, ele começara a verificar apresentando a seguinte tela:
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Tela10i.png/220px-Tela10i.png)
11) Caso tenha algum problema na build apresentará a seguinte informação:
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Tela012i.png/220px-Tela012i.png)
12) Depois da equipe ter resolvido o problema ou quando não houver nenhum problema apresentará a seguinte Tela:
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/59/Tela11i.png/220px-Tela11i.png)