Cette étape permet de configurer l'analyse de sécurité du code
L'installation se fait via le menu Manage Jenkins -> Plugins
Dans la catégorie Available plugins
, sélectionner SonarQube Scanner
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.
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
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 %}
Dans Jenkins - Manage Jenkins -> Tools
, ajouter un scanner pour 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/
Nous allons ajouter 2 étapes au pipeline ainsi que des informations d'environnement pour l'utilisation du scanner SonarQube.
{% 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 :