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