Back-End

8 jan, 2019

Análise de código com SonarQube + Docker + .NET Core

Publicidade

Hoje em dia qualidade de código é muito importante. Temos diversas ferramentas e componentes no mercado que nos ajudam a identificar possíveis problemas. Uma delas é o SonarQube, uma ferramenta grátis na versão Community e com um preço que varia nas demais versões, de acordo com os recursos (Developer, Enterprise ou DataCenter).

Dashboard do projeto
Exemplo de Code Smells

O SonarQube realiza diversas análises de bugs, code smells, test coverage, vulnerabilidades e blocos duplicados. Sendo assim, a identificação de problemas como, por exemplo, um WebClient que esqueceram de dar um dispose é essencial.

Agora vamos criar um ambiente e configurar o SonarQube com Docker + SonarQube (7.5) + Projeto .NET Core.

É necessário ter o Java SDK instalado!

Abra o CMD ou o terminal de sua preferência e execute os comandos para baixar o arquivo do Docker-Compose:

curl -LO https://raw.githubusercontent.com/thiagoloureiro/SonarQube-Docker-Netcore/master/docker-compose.yml

A seguir executaremos o compose para subir a imagem:

docker-compose up

Docker Compose finalizado. SonarQube e PostgreSQL rodando

Abra o seu navegador no endereço http://localhost:9000.

Insira as credenciais default da imagem docker
  • Login: admin
  • Password: bitnami

Será exibida uma interface para inserir informações sobre o projeto:

Após clicar em Generate, será exibida a seguinte tela:

Nesse momento selecione a linguagem do seu projeto e insira uma key, que será usada como Token:

Após clicar em Done, as seguintes informações serão exibidas:

Anote a key marcada na imagem acima e clique em “Finish this tutorial” no canto inferior direito. Feito isso, seu projeto está criado e seu ambiente está pronto para realizar a primeira análise:

Abra novamente o CMD e crie uma nova solution e projeto. Em seguida, altere o nome da solution e o projeto para o nome gerado pelo comando new sln / console.

dotnet new sln

dotnet new console

dotnet sln awesomeproject.sln add awesomeproject.csproj

Agora vamos à parte do SonarQube. Para o .NET Core temos uma tool nativa. Para instalar, execute o seguinte comando:

dotnet tool install --global dotnet-sonarscanner

Em seguida:

dotnet sonarscanner begin /d:sonar.login=admin /d:sonar.password=bitnami /k:”AwesomeKey”

O Login pode ser substituído pela Key gerada acima, ficando apenas:

dotnet sonarscanner begin /d:sonar.login=keygerada /k:”AwesomeKey”

Agora executaremos um build do projeto:

dotnet build
dotnet build

Para finalizar o processo vamos executar o comando para encerrar a análise:

dotnet sonarscanner end /d:sonar.login=admin /d:sonar.password=bitnami

Ou:

dotnet sonarscanner end /d:sonar.login=keygerada
Processo finalizado

Finalizado o processo, podemos voltar para o dashboard (http://localhost:9000) e teremos algumas informações:

Agora é só você configurar seu projeto e executar automaticamente os comandos quando executar um build em um branch específico.

Até a próxima!

Referências