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ística | Valor para falha |
---|---|
Cobertura de testes | Menor que 50%* |
Linhas duplicadas (%) | Maior que 3%* |
Code Smells | Maior que 0 |
Vulnerabilidades | Maior 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.