SonarQu...oi ?
SonarQube est un logiciel open-source développé par la société SonarSource. Il permet de mesurer la qualité de votre projet de plusieurs façons.- Respect des règles et normes du code
- Documentation du code
- Analyse des tests unitaires (couverture du code, etc.)
- Duplication du code
- Vulnérabilités potentielles (par degré d’importance : mineure, majeure, bloquante)
- Génération de rapports
- Compatibilité avec GitLab et GitLab CI (pour de l’intégration continue.. oui, oui !!)
Et comment ça fonctionne ?
SonarQube comprend en fait “deux sous-applications” :- un moteur d’analyse (le scanner) : installé localement sur la machine du développeur.
- un serveur centralisé : pour la conservation des enregistrements et la création de rapports.
Avoir un code de qualité ? C'est primordial !
En effet, un code de qualité facilitera la maintenance de votre projet. Votre code sera plus modulaire par exemple, et surtout, beaucoup plus exploitable si d’autres développeurs devaient se charger de reprendre votre fardeau flambeau. De plus, vous réduisez le risque de “bogues” et vous augmentez les performances de votre solution (plus de duplication de code, plus de code inutile, plus de code déprécié, etc.). En conclusion, votre code sera “tout propre et en bonne santé”. Prenez soin de votre code, il le mérite... Vous pourrez, par la suite, frimer auprès de vos collègues en sous-entendant que SonarQube n’y est pour rien et que seul votre talent est la conséquence de ce travail irréprochable...
Installation de SonarQube : analysons la beauté du code
Dans ce qui va suivre, je vous propose de monter un environnement SonarQube localement sur votre machine pour tester rapidement (et facilement !) la qualité de votre code. Pour cela, nous allons déployer un serveur SonarQube et utiliser un scanner pour analyser notre mine d’or et créer des rapports. Et parce que nous aimons la facilité, je vous propose d’utiliser Docker. Si vous connaissez très peu la chose, je vous suggère de visiter ces liens très intéressants :- https://www.wanadev.fr/23-tuto-docker-comprendre-docker-partie1/
- https://www.wanadev.fr/24-tuto-docker-demarrer-docker-partie-2/
Première étape : installez Docker
- MacOs : https://www.docker.com/products/docker-desktop
- Windows : https://store.docker.com/editions/community/docker-ce-desktop-windows
curl https://releases.rancher.com/install-docker/18.03
Ensuite : installez SonarQube Community et lancez-le
Dans votre terminal, tapez les 2 commandes suivantes :docker pull sonarqube
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
Vous pouvez maintenant accéder au serveur SonarQube et consulter l’interface sur http://localhost:9000 (ça peut durer quelques secondes avant de pouvoir accéder à l'interface...)
Facile, non ?
Vous pouvez vous connecter en utilisant le couple admin/admin.
Étape 3 : configurez l'analyse de votre projet
A la racine de votre projet, créez un fichier sonar-project.properties et copiez-y le contenu suivant :# Doit être unique dans l'instance SonarQube
sonar.projectKey=votre_clé_unique
# Le nom et la version affichés dans l'interface SonarQube
sonar.projectName=MonProjet
sonar.projectVersion=1.0
# Le chemin relatif aux fichiers que vous vous souhaitez analyser dans votre code
sonar.sources=src
# Cas d'un projet utilisant composer.
# On ignore l'analyse du code présent dans les dépendances.
sonar.exclusions=vendor/**
# Encodage du code source.
sonar.sourceEncoding=UTF-8
Étape 4 : lancez le scanner
Dans votre terminal, dirigez-vous à la racine de votre projet et tapez la commande suivante :
docker run -ti -v votre_chemin_projet/:/root/src --link sonarqube newtmitch/sonar-scanner
Remarque : pensez à renseigner votre chemin après le flag -v. De plus, il est possible que cette commande ne fonctionne pas sous Windows. J’ai (seulement) testé sur Ubuntu et MacOs X.
admin
10/02/2023
Bonjour John, Merci pour votre retour. Bon courage pour votre recherche. C'est un très bon choix de vous orienter vers le DevOps, c'est un domaine passionnant. L'article concernant les containers d'applications virtualisés n'a pas encore été publié sur notre blog. Restez connecté, il devrait arriver prochainement ! D'ici là, je peux vous rediriger sur mon espace public gitlab où j'ai partagé quelques trucs & astuces : https://gitlab.com/jordanprotin/public/docs Bonne continuation. Jordan PROTIN
John
09/02/2023
Bonjour Merci pour cet article très instructif. Je vais tenter d’analyser le code de mon application python. Je suis débutant dans le domaine. Je viens de terminé une formation DevOps de trois mois. Et je recherche activement un post en tant que DevOps junior. Je continue à me former en autodidacte. C’est pourquoi vos articles m’intéressent beaucoup. Où peut-on trouver votre prochain article sur les containers d’applications virtualisés ? Je vous remercie de votre attention. Bravo pour cet article. John