Azure DevOps e SonarCloud - em nosso pipeline
Jhony Walker
Posted on November 26, 2021
O SonarCloud é uma plataforma em nuvem para exibir o processo de inspeção continua do código de sua aplicação. Para isso, o SonarCloud utiliza o SonarQube para realizar a “varredura” em seu código fonte e analisar possíveis vulnerabilidade, erros e regras específicas da linguagem (Code Smells).
Como no exemplo iremos utilizar uma aplicação construída com Node.js, então podemos analisar os seguintes guias de referências:
Pipeline de Build
Com um projeto previamente commitado no Azure DevOps, iremos configurar nosso pipeline de build para criar um artefato para um futuro deploy e aproveitar para fazermos nossa inspeção contínua.
Criação do pipeline
Em nosso Azure DevOps iremos acessar o menu de pipelines > builds.
E então criar um novo pipeline de build.
Para este exemplo, vamos configurar utilizando o recurso de edição clássica, para isso basta clicar nesta opção:
Vamos então selecionar o repositório que nosso código fonte se encontra.
Para esta aplicação em Node.js, iremos utilizar o template para build e test de aplicação em Node.js respectivamente
Bom, agora já possuímos nossos passos de build, test, publish e geração do artefato. Agora iremos configurar a nossa análise de código com o SonarQube e SonarCloud.
Criação de Conta e Projeto no SonarCloud
É possível acessar o SonarCloud através de três opções:
- Azure DevOps
- Bitbucket
- GitHub
Eu vinculei minha conta do GitHub para acesso ao SonarCloud.
Após o login, vamos criar uma nova organização para o nosso exemplo:
Vamos criar de forma manual o endpoint de nossa organização.
Após criação da nova organização, iremos criar um novo projeto para análise do código.
E então configurarmos uma chave de projeto.
Na próxima etapa, será gerado um token a partir da descrição informada. Criado então o projeto de análise de código, vamos configurar em nosso pipeline de build.
Adicionando a extensão do SonarCloud
Para adicionar a extensão do SonarCloud, temos que clicar em novo agent job e pesquisar por “sonar cloud”. Após encontrar o SonarCloud no Marketplace, devemos então adiciona-lo em nosso Azure Devops.
Após adicionado como extensão na nossa organização do AzureDevOps, será liberado três novos templates para o nosso pipeline, sendo eles “Prepare Analysis Configuration”, “Run Code Analysis” e “Publish Quality Gate Result”.
Para que funcione corretamente a análise do código. Devemos adicionar na sequência correta esses três passos no pipeline.
- Sendo primeiro a preparação da análise “Prepare analysis on SonarCloud”.
- Logo em seguida devemos adicionar o build do projeto. No caso um projeto em .net core, então iremos utilizar o comando de dotnet build.
- Depois adicionaremos o passo de execução da análise “Run Code Analysis”.
- E por fim, publicaremos os resultados “Publish Quality Gate Result”.
Essa sequência se faz necessário pois ao iniciar a preparação da análise, o SonarCloud passa a “escutar” o diretório, então logo mais será compilado o código para esta verificação e então será executado e publicado a análise.
Configurações do “Prepare Analysis Configuration”
Vamos verificar que a etapa de configurações de preparo da análise requer algumas atenções de configurações.
Primeiro, vamos criar nossa conexão com o SonarCloud clicando no botão “New”.
Será necessário informar o nome da conexão, sendo a chave do produto informada no SonarCloud e o token gerado para o projeto criado.
Após este passo, basta selecionar o nome da organização.
Outra configuração importante é a Utilização do Standalone Scanner e Manually provide configuration. Também poderíamos deixar integrado com o MSBuild.
Selecionando a configuração manual, será necessário informar novamente a chave do projeto que será testado no SonarCloud.
Pronto! Agora é só salvar e mandar executar o nosso build. Clique no botão “Save and Queue”.
Build com Sucesso
Ao acessar os detalhes do build que foi gerado, podemos observar que as etapas foram concluídas com sucesso e inclusive que o resultado foi publicado no SonarCloud.
Verificando o relatório no SonarCloud
Ao acessar o projeto no SonarCloud e selecionar branch do nosso código, verificamos que o nosso código passou pela análise do SonarQube.
O Bacana é que a cada novo build, as novas funcionalidades adicionadas em nosso código serão novamente analisadas e novo relatório será gerado.
Com isso a gente consegue garantir uma qualidade do código que será entregue para o cliente. Sempre se preocupando com as questões de seguranças, vulnerabilidades e padrões da linguagem.
Fontes onde pesquisei esse conteúdo:
- https://azure.microsoft.com/pt-br/services/devops/
- https://azure.microsoft.com/pt-br/solutions/devops/
- https://azure.microsoft.com/pt-br/features/devops-projects/
- https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
- https://docs.sonarqube.org/latest/analysis/ci-integration-overview/
- https://docs.sonarqube.org/latest/analysis/analysis-parameters/
Posted on November 26, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.