culturagovbr / mapasculturais_descontinuado

Mapas Culturais
16 stars 2 forks source link

Adicionar ferramenta de análise estática ao código #114

Open brunapinos opened 6 years ago

brunapinos commented 6 years ago

Olá, sou Bruna Pinos e sou da equipe do LAPPIS(Laboratório Avançado de Produção, Pesquisa e Inovação em Software) da UNB/FGA. Este laboratório possui um projeto junto ao MINC e tem como um dos objetivos levantar algumas melhorias para o projetos desenvolvidos pelo MINC, e o mapasculturais é um dos analisados.

Sugere-se o uso de uma ferramenta de análise estática da qualidade do código e cobertura de teste, no caso o CodeClimate, contribuindo com a melhoria do mapas.

Para iniciar sua ultização, deve-se associar o repositório a uma conta do Github, e adicionar o Webhook do Codeclimate no repositório. Assim que adicionado e associado, o próprio Codeclimate irá gera uma primeira versão de métricas da qualidade de código, mas de maneira imprecisa.

Para gerar o scrip do Codeclimate específica para o projeto, é necessário que, localmente, baixe a imagem Docker do Codeclimate com os seguintes comandos, encontrados também em https://github.com/codeclimate/codeclimate:

docker pull codeclimate/codeclimate docker run --interactive --tty --rm --env CODECLIMATE_CODE="$PWD" --volume "$PWD":/code --volume /var/run/docker.sock:/var/run/docker.sock --volume /tmp/cc:/tmp/cc codeclimate/codeclimate help curl -L https://github.com/codeclimate/codeclimate/archive/master.tar.gz | tar xvz cd codeclimate-* && sudo make install

Após, aparecerá no repositório local uma pasta codeclimate-master que conterá o arquivo que interessa, o .codeclimate.yml. Este arquivo contem as configurações desejadas para o projeto, como engines que irão fiscalizar o código em relação a bugs, bad smells, rodar teste, etc. Além dos tipo de arquivos observados, e as pastas que devem ou não ser analisadas.

O Codeclimate, por padrão, gera um arquivo o .codeclimate.yml para projetos Ruby. Como o mapas é em PhP, nós do Lappis geramos um exemplo que analisa tanto os arquivo PhP presentes no projeto, quanto os ShellScripts, mas não gera cobertura de código. Este exemplo se encontra em https://github.com/lappis-unb/mapasculturais/blob/master/.codeclimate.yml

Posteriormente a instalação e a modificação do arquivo .codeclimate.yml, sugere-se mover o mesmo para pasta raiz do projeto e rodar os seguintes comandos: codeclimate validate-config // Responsável pela análise do próprio .codeclimate.yml; Verifica se o arquivo foi escrito corretamente codeclimate analyze // Roda o .codeclimate.yml e as engines setas neste

Feitos estes passos, e após o commit e push na branch master, os resultados serão gerados no site do Codeclimate na conta do Github que o projeto se associou, mostrando o que há de errado no código e quanto tempo será necessário despender para arrumá-lo.

Para mais informações, engines que podem ser adicionadas, cobertura de teste, e branches que o Codeclimate pode atuar encontra-se em https://docs.codeclimate.com/