Post

1 Star2 Stars3 Stars4 Stars5 Stars

Seguindo a linha dos últimos posts sobre Integração Contínua com o Jenkins, vamos falar hoje sobre o Travis CI e como configurá-lo para rodar um projeto de exemplo com GhostDriver e Gradle.

Sobre GhostDriver e Gradle
Para quem não conhece o GhostDriver e o Gradle, eles já foram abordados em outros posts aqui do blog (clique no nome para abrir o post):
Headless Testing com GhostDriver
Configurando Jenkins para um projeto com GhostDriver e Gradle
Em resumo: GhostDriver é a implementação do Selenium WebDriver para usar o headless browser PhantomJS. Gradle é uma ferramenta de build, assim como o Maven e o Ant.

Travis CI
O Travis CI é um serviço de Integração Contínua na nuvem que pode ser conectado a repositórios no GitHub. Ele é gratuito para repositórios públicos e pago para repositórios privados.
É um serviço excelente, amplamente usado em projetos no GitHub. Possui suporte a diversas linguagens, como: C, C++, Clojure, Erlang, Go, Groovy, Haskell, Java, JavaScript (com Node.js), Objective-C, Perl, PHP, Python, Ruby, Scala, etc.. Vale lembrar que a documentação também é muito boa.

Como o Travis funciona?
Toda vez que dermos um push no nosso repositório do GitHub, o Travis irá executar os seguintes passos:
Criar uma máquina virtual em branco (padrão: Ubuntu 12.04 LTS Server Edition 64 bit + 3GB de RAM)
Pegar o código-fonte no GitHub
Fazer o deploy da aplicação
Rodar os testes
Notificar o usuário (via e-mail, por exemplo)

Conectando o Travis a um repositório do GitHub
Para conectar o Travis CI a um repositório do GitHub, primeiro devemos conseguir um token, que é gerado pelo Travis. Para obter o token:
Acesse a página do Travis: https://travis-ci.org/
Faça login com sua conta do GitHub
Clique no seu nome (no lado superior direito da tela)
Clique na aba Profile e copie o token exibido
Agora, precisamos adicionar um novo serviço (Travis) no repositório do GitHub. Isso é feito da seguinte forma:
Acesse o seu repositório do GitHub a ser integrado
Clique em Settings:

Clique na seção Webhooks & Services. Em seguida, clique em Add service e busque por “Travis CI”:

Na tela seguinte, informe seu usuário do GitHub e o token que você obteve anteriormente.
Finalmente, habilite o projeto no Travis:
Acesse o Travis e clique no seu nome de usuário (no lado superior direito)
Você verá uma lista dos repositórios públicos do seu GitHub. Habilite o Travis para o projeto que desejar, clicando no botão ON/OFF:

Pronto! Agora só falta configurarmos o arquivo de build, que veremos a seguir.

Configurando o build
Um recurso excelente do Travis CI é que ele possui suporte nativo ao PhantomJS. Dessa forma, não precisamos instalar o PhantomJS para rodar nossos testes com o GhostDriver, o que simplifica ainda mais a configuração.
OBS: O Travis também oferece suporte pra headless testing com Xvfb + Firefox. Além disso, também tem suporte para usar o SauceLabs.
O build do Travis é configurado através de um arquivo YAML (YAML Ain’t a Markup Language), chamado “.travis.yml”. A sintaxe é bem simples e a documentação do Travis ajuda a entender quais comandos usar de acordo com a necessidade. Veja abaixo algumas dicas pra entender/escrever melhor arquivos YAML:
Leia arquivos .travis.yml de projetos quaisquer do GitHub
Leia a documentação do Travis: http://docs.travis-ci.com/
Use o Travis WebLint para validar se o arquivo que você escreveu está com a sintaxe correta: https://lint.travis-ci.org/

Criando um arquivo de build
Crie um arquivo com o nome “.travis.yml” na raiz do repositório. Agora, vamos informar no arquivo o que o Travis precisa para o build. No nosso exemplo, como estamos trabalhando com um projeto Java, temos que dizer isso ao Travis, da seguinte forma:

language: java

Em seguida, precisamos dizer qual versão da JDK vamos usar. O default é a Oracle JDK7, mas, para mostrar como funciona, vamos alterar para a versão OpenJDK7:

jdk:
– openjdk7

OBS: É possível informar mais de uma versão de JDK, caso você precise testar sua aplicação em versões diferentes.
Para terminar, vamos ver a parte de notificações. Por default, o Travis irá enviar um e-mail de notificação para o committer e para o autor do commit quando:
um build quebrar ou continuar quebrado
um build quebrado for corrigido
Você pode configurar os comportamentos default, além de configurar outros e-mails para que o Travis envie notificações. Também são suportadas notificações via IRC, Campfire, dentre outras formas. A parte da documentação que explica sobre notificações pode ser conferida aqui.
No nosso exemplo, vamos configurar para que o Travis envie notificações por e-mail sempre, ou seja, independente do resultado do build. Um exemplo seria:

notifications:
email:
recipients:
[email protected]
on_success: always

CUIDADO: Repare que as tags são indentadas com espaços em branco. Não use TAB para indentar! Valide no Travis WebLint se o seu arquivo está OK!

Travis CI + Gradle
Para projetos em Java, o Travis irá verificar se existe, na raiz do repositório:
um arquivo de build do Gradle (build.gradle)
um arquivo de build do Maven (pom.xml)
um arquivo de build do Ant (build.xml)
No nosso caso, colocamos o arquivo de build do Gradle (e somente ele!) dentro da raiz do repositório do projeto. O Travis irá encontrar o arquivo e executar o build.

Gerando novo build e visualizando resultados
Para que o Travis gere um novo build, basta alterarmos alguma coisa no repositório. Para nosso exemplo, vou alterar o arquivo .travis.yml, vide imagem abaixo:

Com isso, o Travis irá iniciar um novo build:

É possível acompanhar o log de execução, pra ver os passos que estão sendo feitos:

No final do build, como esperado, recebi um e-mail de notificação:

E é isso! Compartilhem suas dúvidas/sugestões/críticas nos comentários, ou entrem em contato!
Até a próxima!

Referências
http://www.yaml.org/https://travis-ci.orghttps://travis-ci.org/stefanteixeira/exemplo-ghostdriver-gradlehttp://lint.travis-ci.org/https://github.com/stefanteixeira/exemplo-ghostdriver-gradlehttp://docs.travis-ci.com/user/getting-started/http://docs.travis-ci.com/user/languages/java/http://docs.travis-ci.com/user/notifications/http://docs.travis-ci.com/user/ci-environment/http://www.amazon.com/Instant-Testing-CasperJS-%C3%89ric-Br%C3%A9hault/dp/1783289430

Source: http://stefanteixeira.com.br/2014/09/01/configurando-travis-ci-para-um-projeto-com-ghostdriver-e-gradle/?utm_source=rss&utm_medium=rss&utm_campaign=configurando-travis-ci-para-um-projeto-com-ghostdriver-e-gradle

Category: Gradle, Integração Contínua, Selenium WebDriver, Travis CI

Você também pode querer ler

Comments are off for this post.