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.
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:
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 MavenMSBUILD
: per a projectes que utilitzen MSBuildGENERIC
: 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.