Back-End

23 mai, 2017

Revisão automática de código Elixir com GitHub, Credo e Travis CI

Publicidade

Enquanto eu trabalhava no Elixir, eu percebi que seria bom ter uma ferramenta de análise de código estático integrada com o processo de desenvolvimento. No mundo do Elixir nós temos o credo. É uma ferramenta muito boa que podemos adicionar ao nosso arquivo mix.exs e analisar nosso projeto simplesmente digitando

$ mix credo

E teríamos algo assim:

Bonito, não é?

Então antes de terminar meu pull request eu preciso simplesmente verificar meu código. Mas e se eu não quiser verificar meu código para cada commit? Bem, o Travis pode executar essa tarefa para mim criando comentários no GitHub.

Ok. Temos um simples arquivo Elixir .travis.yml:

language: elixir
elixir:
  — 1.3.2
otp_release:
  — 19.0

Como padrão, o Travis vai buscar todas as dependências, construir o projeto e realizar o teste. Agora precisamos adicionar algo que analise o código e crie os comentários para as solicitações. Existe uma boa ferramenta chamada pronto que por sorte tem um executor credo. Vamos adicioná-lo ao nosso arquivo .travis.yml

language: elixir
elixir:
  — 1.3.2
otp_release:
  — 19.0
env:
 global:
   - MIX_ENV=test
   - PULL_REQUEST_ID=$TRAVIS_PULL_REQUEST
before_script:
  - rvm install ruby-2.3.1
  - gem install pronto-credo
script:
  — if [ $PULL_REQUEST_ID != false ]; then pronto run -f github_pr; fi
  — mix test

O Pronto precisa de duas variáveis de ambiente. PULL_REQUESTS_ID para saber qual solicitação estamos analisando e GITHUB_ACCESS_TOKEN para ter acesso ao github.

Nós precisamos gerar GITHUB_ACCESS_TOKEN. Basta acessar sua página de configurações de usuário e clicar em “Códigos de Acesso Pessoal”. Clique no botão “Gerar novo código”, escreva algum nome, por exemplo pronto-nome-projeto, selecione a checkbox do repositório, e clique no botão “Gerar Código”. Feito. Copie seu novo código. Agora vá à sua página do projeto travis, clique em “Mais opções” e “Configurações” adicione em Variáveis de Ambiente como GITHUB_ACCESS_TOKEN.

Depois que o projeto for construído, teremos comentários dentro da solicitação.

Mais uma coisa…. Você pode adicionar o rvm à cache para acelerar as coisas. Basta somente adicionar essas linhas ao seu arquivo .travis.yml

cache:
 directories:
   — /home/travis/.rvm/

 

Boa análise!

 

***

Michał Kalbarczyk faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://blog.fazibear.me/automated-elixir-code-review-with-github-credo-and-travis-ci-986cd56b8f02