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).


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

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

- 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

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

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!