Executando o SonarQube no Visual Studio para Mac

?ukasz ?awicki Blocked Unblock Seguir Seguindo 26 de dezembro de 2018 imagem tirada de https://www.sonarqube.org/

“Eu realmente preciso de análise de código estático?” – essa é a pergunta que eu estava me perguntando há pouco tempo. Eu decidi que no tempo livre eu vou tentar. Então eu fiz. Passei uma noite para configurá-lo e testar como ele funciona. Eu segui esta instrução e depois de vários minutos eu pude executar o SonarQube contra o meu projeto Xamarin.Forms. Gostei muito do modo como o sonar apresentava os dados: era óbvio por onde eu deveria começar. A partir desse dia estou usando o sonar quase todos os dias.

O que eu não gostei, porém, é o fato de que o Visual Studio para Mac ainda está perdendo a integração do SonarQube. Para executar o sonar, tive que abrir o terminal e executá-lo a partir daí. Afinal, decidi escrever um script que possa executar o Sonar automaticamente. Mais tarde, ao escrever o artigo anterior , descobri que é possível adicionar “External Tool” ao Visual Studio para Mac. Então, adicionei o SonarQube e agora posso executá-lo sem ter meu IDE.

Atualização de dezembro de 2018: Esta solução não é perfeita. Você precisa fazer o download e descompactar o SonarQube Scanner por conta própria e você precisa iniciar o console do sonar dentro do seu terminal.

Passo a passo

Deixe-me reescrever as instruções de como instalar o sonar, para que você possa executá-lo no seu Mac.

1. Instalar brew

É muito útil ter cerveja no seu Mac. Esperar de ter sonar sobre ele, eu sugiro que você dê uma olhada em git-extras (vou descrevê-lo em outro post no blog). Para instalar o brew , abra seu terminal e execute:

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

2. Instale o sonar

Na próxima etapa, você precisa instalar o sonar e sonar-scanner. Você precisa fazer isso, para poder executar a análise de código em seus projetos. Agora com o brew instalado, execute os seguintes comandos no seu terminal:

brew install sonar
brew install sonar-scanner

3. Inicie o sonar em um dos seus terminais.

Você precisará ter 2 terminais abertos para executar o sonar. Então faça. Se você estiver no terminal, pressione Cmd + N para abrir uma nova janela. Tê-lo? Eu suponho que não foi tão difícil. Agora, em uma janela, execute o comando:

sonar console

Começará o sonar. Para verificar se está funcionando, tente abrir http://localhost:9000 em seu navegador. Quando você abre a página, ele deve pedir para você criar o token. Você pode criar um e salvá-lo. Se ele solicitar login e senha, use as credenciais mágicas que podem abrir muitas portas: admin / admin .

4. Faça o download do sonar-runner – descompacte-o e lembre-se do caminho em que você fez isso.

5. Digitalize o projeto

Agora precisamos analisar seu projeto. Para fazer isso, você precisa executar os seguintes comandos no seu segundo terminal:

mono <path to Sonar>/sonar-scanner-msbuild-4.0.0.731/MSBuild.SonarQube.Runner.exe begin /k:"COM.YOGI.AWESOME.APP"

MSbuild /t:rebuild

mono <path to Sonar>/sonar-scanner-msbuild-4.0.0.731/MSBuild.SonarQube.Runner.exe end

O primeiro comando simplesmente inicia o scanner de sonar para o nosso projeto, então precisamos reconstruir o projeto e depois podemos finalizar o sonar-scanner. Se a varredura estiver concluída, você pode abrir novamente http://localhost:9000 e seu projeto deve estar lá.

O que vale a pena mencionar é que você pode começar o sonar com mais argumentos. O único necessário é / k: {Project-key}

Você pode começar o sonar com o seguinte:

  • /d:sonar.login=”TOKEN ” – para autenticar a varredura,
  • / n : ” APP NAME” – “Especifica o nome do projeto analisado no SonarQube. Adicionar este argumento irá sobrescrever o nome do projeto no SonarQube, se já existir. ”
  • /v:”1.0 " – versão do aplicativo. Isso é bom se você quiser ter um histórico de varreduras.

Além disso, você pode querer perguntar o que é “caminho para Sonar”. E essa é uma boa pergunta. Este é um caminho relativo para a pasta onde você descompactou o sonar. Talvez seja melhor mostrá-lo pelo exemplo. Meu comando begin sonar se parece com isto:

mono ~/Documents/Coding/sonar-scanner-msbuild-4.4.2.1543-net46/SonarScanner.MSBuild.exe begin /k:${PROJECT_NAME}

Como você pode ver, eu descompactei o scanner de sonar dentro do meu catálogo de Codificação, que está dentro da pasta Documentos.

Então, é assim que você pode executar o Sonar manualmente.

Automação do processo

Eu não sei sobre suas preferências, mas pessoalmente, acho que o caminho acima é muito longo. Você precisa executar comandos um por um, esperar pela saída, executar outro comando etc. Então, eu estava pensando: como fazer isso automaticamente.

Eu decidi que posso escrever um script que irá executar tudo e quando concluído irá abrir o meu navegador. Além disso, eu não tive a chance de escrever muitos roteiros na minha vida, então fiquei ainda mais feliz em fazê-lo.

Requisitos : Eu quero ter um script que aceite um caminho para minha solução como um parâmetro e execute o Sonar nesse projeto.

Então comecei a implementá-lo. É isso que eu fiz.

Não é um roteiro perfeito. Eu gostaria que fosse mais poderoso, mas agora eu não posso fazer isso.

Requisitos:

  • sonar instalado,
  • scanner de sonda instalado
  • sonar-runner é baixado e descompactado

Como você pode ver no código, o script inicia o SonarQube.Runner, reconstrói a solução e encerra o executor. Quando concluído, ele abre o host local na porta 9000 (porta padrão do Sonar). Além disso, para PROJECT-KEY , estou usando o nome da solução sem extensão .sln – por exemplo. project-key para MyAwesomeApp.sln seria MyAwesomeApp

Uso

1. abra o script em um editor de texto e forneça o caminho para o sonar-runner (linhas 21 e 27). Como isso:

2. No terminal, abra a pasta em que você possui o script. Execute o script digitando

./runSonar <path-to-your-project>

por exemplo. ./runSonar Documents / Coding / Pessoal / MyApp.

Adicionando script ao VS4Mac como uma ferramenta externa

Se você quiser adicionar sonar como uma ferramenta externa, vá para o seu Visual Studio para Mac preferências e em Ferramentas externas, adicione o seguinte:

  • Título : nomeie como você quiser
  • Comando : mostre o VS onde o script está,
  • Argumentos : ainda precisamos do caminho para o arquivo .sln para fornecê-lo,
  • Diretório de trabalho : basta alterá-lo para o mesmo do passo anterior,
  • Ligação de chaves : até você.