Guia integració eina d’anàlisi de codi de Qualitat

Darrera actualització: 15-02-2022

Eina d’anàlisi

Al SIC s’ha dut a terme la integració de les aplicacions amb l’eina d’anàlisi estàtic de codi: SonarQube CE. Es tracta d’una eina que serveix per a detectar issues crítiques i bloquejants així com duplicació de codi font de les aplicacions. Podeu accedir mitjançant el següent enllaç: https://codi.qualitat.solucions.gencat.cat.

L’Oficina de Qualitat recomana instal·lar SonarQube a l’entorn de desenvolupament per a facilitar una inspecció contínua. Per tal d’unificar els criteris de l’anàlisi, l’Oficina de Qualitat ha definit les Quality Gates de codi. Per a més informació: Portal de Qualitat.

Integració contínua

El SIC incorpora un nou Stage a totes les pipelines de construcció i desplegament d’aplicacions de forma que aquest s’encarrega de, un cop finalitzada amb èxit la construcció del/s artefacte/s, fer l’anàlisi i comprovació de les quality gates de codi, i realitzar l’enviament de l’informe a SonarQube.

Stage AEC

Per tant, cada pujada de codi font al sistema de custòdia del SIC implica la revisió automàtica de la qualitat del codi del projecte i, si no passa les Quality Gates, l’Oficina de Qualitat pot bloquejar l’execució del job, no permetent continuar amb el desplegament de l’aplicació. A la pantalla principal de la pipeline es mostrarà el resultat de la comprovació, habilitant un enllaç on podreu accedir al detall:

Stage AEC

Prerequisits

Cal assegurar-se de tenir el codi font actualitzat, amb el versionat adient, i tenir la construcció i desplegament de l’aplicació automatitzada al SIC.

Client utilitzat segons tecnologia

El sistema s’encarrega de fer l’enviament amb el client SonarScanner més adequat per a cada tipus de tecnologia de construcció:

  • MAVEN: per a projectes Maven
  • MSBUILD: per a projectes que utilitzen MSBuild
  • GENERIC: per a projectes que utilitzen NPM, projectes PHP, PL/SQL i d’altres

Per defecte, l’enviament es farà utilitzant el client de SonarScanner adient i s’aplicaran paràmetres per defecte d’acord amb la classificació del pas de construcció (step) configurat al fitxer ACA repositat al codi font dels projectes i que origina la generació de les pipelines al SIC. Podeu veure que, com a novetat, es permet incloure una secció analysis on es pot redefinir el sistema d’enviament per a escollir una modalitat més adequada, per exemple, per a salvar limitacions conegudes com les següents:

  • Els projectes mavenitzats han d’empaquetar-se amb una versió mínima de Maven.
  • Els projectes java han de poder-se compilar amb una versió mínima de Jdk.
  • Els projectes .Net han de compilar-se amb una versió mínima de MSBuild i .NET Framework.

Per a més informació: https://docs.sonarqube.org/9.2/analysis/scan/sonarscanner-for-jenkins/

En qualsevol cas, el sistema ignorarà els arxius de llenguatges no suportats (veure Community Edition) per l’eina.

Configuració a nivell de projecte

Tal com s’indica a la documentació de referència, cada tipus de client permet configurar els paràmetres aplicables a cada cas: https://docs.sonarqube.org/9.2/analysis/scan/sonarscanner-for-jenkins/.

En el següent enllaç, podeu trobar alguns [exemples pràctics per a personalitzar exclusions] (/howtos/2020-10-26-SIC-Howto-definir_exclusions_SonarQube/).

Canals de contacte

El canal de contacte dependrà de l’àmbit del dubte o problema:

  • Si es localitza en la configuració i accessos a l’eina SonarQube o la configuració de les Quality Gates, haureu de tractar-ho amb el responsable de qualitat del vostre lot d’aplicacions. Si el dubte o problema no s’ha resolt, caldrà que el responsable de qualitat del vostre lot es posi en contacte amb l’Oficina de Qualitat mitjançant la bústia qualitat.solucions@gencat.cat.

  • Si es localitza en el comportament de les pipelines de desplegament, configuració de projectes i altres aspectes de la integració contínua, haureu de posar-vos en contracte a través dels Canals de suport del SIC.