SonarQube e Quality Gates

O projeto Minerva System atualmente está hospedado no GitHub e, por isso, utiliza as ferramentas de pipelines e CI/CD do mesmo para execução de testes e geração de builds.

Para garantir a qualidade no processo de entrega de cada pull request, foi adicionado suporte a SonarQube, principalmente através do arquivo sonar-project.properties que se encontra na raiz desse projeto.

O GitHub possui acesso ao SonarQube, que está em execução em infraestrutura própria que, por enquanto, trata-se de um servidor on-premise em um Raspberry Pi 4, mais especificamente executando K3s (uma implementação de Kubernetes). Este servidor também opera atualmente como o ambiente de testes do Minerva System, uma vez que o mesmo não possui um ambiente de QA ou produção.

Por isso, pelo menos por enquanto, o projeto não possui um portal de métricas explícito que possa ser acompanhado por desenvolvedores.

Para que um pull request passe nos quality gates do projeto, ele deverá garantir que o código possua as seguintes estatísticas:

EstatísticaValor para falha
Cobertura de testesMenor que 50%*
Linhas duplicadas (%)Maior que 3%*
Code SmellsMaior que 0
VulnerabilidadesMaior que 0

As estatísticas marcadas com * estão sujeitas a mudança no futuro. Idealmente, o código deverá ter uma cobertura de no mínimo 80% e a quantidade de linhas duplicadas poderá ser diminuída após mais análise.