SonarQube est une plateforme open-source pour l'analyse continue de la qualité du code. Elle permet de détecter les bugs, les vulnérabilités de sécurité et les problèmes de code technique dans les projets logiciels. SonarQube est particulièrement utile pour les équipes de développement qui souhaitent améliorer la qualité et la sécurité de leur code en intégrant des vérifications de qualité dans leur processus de développement.
Présentation de SonarQube
Qu'est-ce que SonarQube ?
SonarQube est un outil de qualité de code qui vous permet de :
- Analyser le code : Détecter les bugs, les vulnérabilités de sécurité et les problèmes de code technique.
- Suivre les métriques de qualité : Mesurer la couverture de code, la complexité cyclomatique, la duplication de code, etc.
- Générer des rapports détaillés : Produire des rapports détaillés sur les problèmes de qualité et de sécurité.
- Intégrer dans les pipelines CI/CD : Automatiser les vérifications de qualité dans le processus de développement.
Installation de SonarQube
Pour installer SonarQube, vous pouvez suivre les instructions spécifiques à votre système d'exploitation. Voici un exemple d'installation sur un système Linux :
Installation sur Linux
- Télécharger SonarQube :
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.3.0.51895.zip
- Décompresser l'archive :
unzip sonarqube-9.3.0.51895.zip
- Accéder au répertoire SonarQube :
cd sonarqube-9.3.0.51895/bin/linux-x86-64
- Démarrer SonarQube :
./sonar.sh start
- Accéder à l'interface web de SonarQube :
Ouvrez un navigateur web et accédez à http://localhost:9000
. Connectez-vous avec les identifiants par défaut (utilisateur : admin
, mot de passe : admin
).
Exemples de Ligne de Commande
Voici quelques exemples de commandes avancées pour utiliser SonarQube.
Démarrer SonarQube
Pour démarrer SonarQube :
./sonar.sh start
Arrêter SonarQube
Pour arrêter SonarQube :
./sonar.sh stop
Analyser un Projet Maven
Pour analyser un projet Maven avec SonarQube, vous pouvez utiliser le plugin SonarQube pour Maven. Ajoutez le plugin dans votre fichier pom.xml
:
<properties> <sonar.projectKey>my-project</sonar.projectKey> <sonar.host.url>http://localhost:9000</sonar.host.url> <sonar.login>your-sonar-token</sonar.login> </properties> <build> <plugins> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.9.1.2184</version> </plugin> </plugins> </build>
Ensuite, exécutez la commande Maven pour analyser le projet :
mvn clean verify sonar:sonar
Analyser un Projet Gradle
Pour analyser un projet Gradle avec SonarQube, vous pouvez utiliser le plugin SonarQube pour Gradle. Ajoutez le plugin dans votre fichier build.gradle
:
plugins { id "org.sonarqube" version "3.3" } sonarqube { properties { property "sonar.projectKey", "my-project" property "sonar.host.url", "http://localhost:9000" property "sonar.login", "your-sonar-token" } }
Ensuite, exécutez la commande Gradle pour analyser le projet :
./gradlew sonarqube
Analyser un Projet Python
Pour analyser un projet Python avec SonarQube, vous pouvez utiliser le scanner SonarQube. Installez le scanner :
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
unzip sonar-scanner-cli-4.6.2.2472-linux.zip
export PATH=$PATH:$PWD/sonar-scanner-4.6.2.2472-linux/bin/
Ensuite, créez un fichier sonar-project.properties
dans le répertoire de votre projet :
sonar.projectKey=my-project
sonar.host.url=http://localhost:9000
sonar.login=your-sonar-token
sonar.sources=.
Exécutez la commande pour analyser le projet :
sonar-scanner
Intégrer SonarQube dans un Pipeline CI/CD
Pour intégrer SonarQube dans un pipeline CI/CD, vous pouvez ajouter une étape d'analyse de code dans votre fichier de configuration CI/CD. Par exemple, pour GitHub Actions, vous pouvez ajouter une étape comme suit :
name: SonarQube Analysis on: [push, pull_request] jobs: sonarqube: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up JDK 11 uses: actions/setup-java@v2 with: java-version: '11' - name: Cache SonarQube packages uses: actions/cache@v2 with: path: ~/.sonar/cache key: ${{ runner.os }}-sonar restore-keys: ${{ runner.os }}-sonar - name: Install SonarQube Scanner run: | wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip unzip sonar-scanner-cli-4.6.2.2472-linux.zip export PATH=$PATH:$PWD/sonar-scanner-4.6.2.2472-linux/bin/ - name: Run SonarQube Scanner env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: | sonar-scanner \ -Dsonar.projectKey=my-project \ -Dsonar.host.url=http://localhost:9000 \ -Dsonar.login=$SONAR_TOKEN
Conclusion
SonarQube est un outil puissant pour l'analyse continue de la qualité du code. En utilisant SonarQube, vous pouvez détecter les bugs, les vulnérabilités de sécurité et les problèmes de code technique, et améliorer la qualité et la sécurité de vos projets logiciels. Ces exemples de commandes et de configurations vous donnent un bon point de départ pour commencer à utiliser SonarQube.