SonarQube

Description

Ce template permet d'ajouter :

  • Un job qui s'éxécute sur votre branche par défaut et effectue une analyse globale
  • Un job qui s'éxécute sur toutes les autres branches et qui effectue une analyse permettant de commenté les Merge Request en cas d'erreur.

Il possède comme pré-requis :

  • La variable SONAR_TOKEN contenant votre token SonarQube doit être présente dans votre CI/CD
  • La variable SONAR_HOST_URL doit être présente dans votre CI/CD
  • La variable SONAR_PROJECT_KEY contenant l'identifiant de votre projet dans SonarQube doit être présente dans votre CI/CD

Pour plus d'information, voir la rubrique Administrer Sonarqube

Compatibilité de langage

Le template détecte et exécute les scripts pour les languages suivants :

  • Java (maven)
  • Perl

Si vous avez un besoin pour la mise en place d'un job pour un autre langage, vous pouvez soumettre la demande via un ticket sur le projet du support de la géoplateforme

Utilisation

:warning: Pré-requis: Ce template nécessite un job nommé test qui effectuera les tests unitaires et les traitements nécessaires à l'analyse sonar à stocker dans un artefact.

Voici un exemple:

test:
 stage: test
 image: maven:3.8.3-openjdk-17
 script:
   - mvn clean test
 artifacts:
    paths:
      - // emplacement fichier jacoco.xml
    expire_in: 1 week

Puis, ajouter le code suivant dans votre fichier .gitlab-ci.yml

include:
  - project: geoplateforme/templates
    ref: main
    file:
      - '/ci/sonarqube.yml'

Ces jobs se déclenchent sur l'étape test