Skip to content

Latest commit

 

History

History
112 lines (70 loc) · 3.85 KB

etape-2-analyse-sonarqube.md

File metadata and controls

112 lines (70 loc) · 3.85 KB

Etape 2 : Analyse SonarQube

Cette étape permet de configurer l'analyse de sécurité du code

Installation du plugin SonarQube

L'installation se fait via le menu Manage Jenkins -> Plugins

Dans la catégorie Available plugins, sélectionner SonarQube Scanner

Création d'une token

Il s'agit de créer une token pour l'utilisateur admin de SonarQube qui sera utilisée par Jenkins pour invoquer SonarQube dans le pipeline.

Ajout des credentials SonarQube dans Jenkins

Cette token doit ensuite être utilisée pour configurer les credentials Sonar dans Jenkins.

Secret = token générée précédemment

ID = sonar-token

Description = sonar-token

Configuration du serveur SonarQube

Dans Jenkins - Manage Jenkins -> System, configurer le serveur SonarQube comme ci-dessous.

{% hint style="warning" %} Remplacer l'adresse IP du serveur par celle de la VM {% endhint %}

Configuration du plugin SonarQube

Dans Jenkins - Manage Jenkins -> Tools, ajouter un scanner pour SonarQube

Ajout d'une quality gate dans SonarQube

Il s'agit de configurer un webhook dans SonarQube pour récupérer les informations dans la console Jenkins.

Depuis la console SonarQube :

Name : Jenkins

URL : <http://<IP Jenkins:8090>/sonarqube-webhook/

Modification de la définition du pipeline

Nous allons ajouter 2 étapes au pipeline ainsi que des informations d'environnement pour l'utilisation du scanner SonarQube.

Environnement du scanner

{% hint style="info" %} A ajouter sous la section tools de la définition du pipeline {% endhint %}

environment {
        SCANNER_HOME=tool 'sonar-scanner'
    }

Ajout des étapes du pipeline, à ajouter en fin de liste des stages

stage("Sonarqube Analysis "){
            steps{
                withSonarQubeEnv('sonar-server') {
                    sh ''' $SCANNER_HOME/bin/sonar-scanner -Dsonar.projectName=Petshop \
                    -Dsonar.java.binaries=. \
                    -Dsonar.projectKey=Petshop '''
                }
            }
        }
stage("quality gate"){
           steps {
                script {
                  waitForQualityGate abortPipeline: false, credentialsId: 'Sonar-token' 
                }
           }
        }

Le pipeline doit, à présent, ressembler à ceci :

Et vous pouvez consulter le résultat de l'analyse SonarQube dans la vue Projects de la console :