SlideShare une entreprise Scribd logo
1  sur  16
date: 25/10/2021
Intégration de SonarQube
dans GitLab CI
préparé par Wiem Fourati
Objectif
l’objectif est de faire l’analyse du code source des projets avec l’outil SonarQube
lors de l'exécution d’une pipeline GitLab ci
Les Étapes
1- préparer et lancer un service SonarQube
2- créer un projet sur SonarQube et connectez-le à votre projet sur GitLab
3- lancer la pipeline GitLab ci
1- préparer et lancer un service SonarQube
on peut installer SonarQube et l’utiliser directement sur la machine ou bien sur conteneur docker:
● installez docker et créer un fichier docker-compose.yml dont le contenu:
version: "3"
services:
sonarqube:
image: sonarqube:9.1.0-community
container_name: sonarqube
ports:
- "9000:9000”
● lancer le service avec la commande “docker-compose up -d”
2- créer un projet sur SonarQube et connectez-le à votre projet sur GitLab
les deux options suivantes sont valides, faire le choix selon le besoin:
- “From GitLab”: se connecter à votre compte GitLab et importer tous
vos projets puis sélectionner le projet à analyser
- “Manually”: créer un nouveau projet puis le connecter à GitLab
Manually
1- saisir le nom de nouveau projet à analyser puis cliquez sur “Set up”
2- choisir l’option “GitLab ci”
3- sélectionner le type de projet (projet Golang,js,Python…)
4- créer un fichier “sonar-project.properties” dans la racine de votre projet (où existe le
fichier “.gitlab-ci.yml”) sur le repository et copier les données puis cliquer sur “continue”
5- générer un jeton
associé afin de l’attribuer
dans la variable
“SONAR_TOKEN” lors
de l'exécution de la
pipeline
6- enregistrer l’URL
dans une variable
“SONAR_HOST_URL”
7- créer un stage “test-
sonarqube” dans votre
fichier “.gitlab-ci.yml” et
copier le code (encadré en
rouge), ou bien créer un
nouveau fichier .gitlab-
ci.yml. puis cliquez sur
“Finish this tutorial”
From GitLab
l’importation de vos projets à partir de GitLab directement vous permet d’avoir tous vos projets sur SonarQube
1- Activer l’authentification à 2 facteurs
allez à https://gitlab.com/-/profile/account et activer l’authentification à deux facteurs de votre compte
installer un authentificateur sur votre smartphone et scannez le QR code affiché, un code de 6 chiffre apparaît sur votre smartphone, saisir ce code dans la case
“code pin” et entrez votre mot de passe pour la confirmation
2- Définir vos paramètres globaux
Pour importer vos projets GitLab dans SonarQube, vous devez d'abord définir vos paramètres SonarQube globaux. Accédez à Administration > Configuration >
Paramètres généraux > Intégrations de la plate-forme DevOps , sélectionnez l' onglet GitLab et spécifiez les paramètres suivants :
- donnez un “nom de configuration” de votre choix
- donnez “L'URL de l'API GitLab”, généralement : https://gitlab.com/api/v4
- précisez le “Jeton d'accès personnel” , généré par vous sur votre compte personnel
3- reprendre les mêmes étape dans la partie “Manually”
3- lancer la pipeline GitLab ci
allez sur ce lien
Résultat
Support
configuration complete sur GitLab:
https://gitlab.com/empreinte/docker/sonarqube/-/tree/pipeline-integration
documentation:
https://docs.sonarqube.org/latest/#importing-your-gitlab-projects-into-sonarqube
https://docs.sonarqube.org/8.5/analysis/scan/sonarscanner/
https://docs.sonarqube.org/8.5/analysis/gitlab-cicd/
https://hub.docker.com/_/sonarqube

Contenu connexe

Tendances

Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
safwenbenfredj
 

Tendances (20)

Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
 
Introduction à la démarche Devops
Introduction à la démarche DevopsIntroduction à la démarche Devops
Introduction à la démarche Devops
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequences
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
Presentation-DEVOPS-par-GDG
Presentation-DEVOPS-par-GDGPresentation-DEVOPS-par-GDG
Presentation-DEVOPS-par-GDG
 
Méthodologie de tests et qualité
Méthodologie de tests et qualitéMéthodologie de tests et qualité
Méthodologie de tests et qualité
 
Introduction a Flutter
Introduction a FlutterIntroduction a Flutter
Introduction a Flutter
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Introduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec JenkinsIntroduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec Jenkins
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de test
 
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
 
Alphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm.com Formation Docker (1/2) : Installation et AdministrationAlphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm.com Formation Docker (1/2) : Installation et Administration
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation Flutter
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
 
CONTINUOUS INTEGRATION WITH JENKINS AND GIT
CONTINUOUS INTEGRATION WITH JENKINS AND GITCONTINUOUS INTEGRATION WITH JENKINS AND GIT
CONTINUOUS INTEGRATION WITH JENKINS AND GIT
 
Docker
DockerDocker
Docker
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 

Similaire à Intégration de SonarQube dans GitLab ci

Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
Marc Nazarian
 
StyleCop avec visual studio 2010
StyleCop avec visual studio 2010StyleCop avec visual studio 2010
StyleCop avec visual studio 2010
Novencia Groupe
 
Workshop IoT Hub : Pilotez une ampoule connectée
Workshop IoT Hub : Pilotez une ampoule connectéeWorkshop IoT Hub : Pilotez une ampoule connectée
Workshop IoT Hub : Pilotez une ampoule connectée
Scaleway
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
Hugo Hamon
 

Similaire à Intégration de SonarQube dans GitLab ci (20)

Angular 4 - installation d'Angular -- Français
Angular 4  - installation  d'Angular -- FrançaisAngular 4  - installation  d'Angular -- Français
Angular 4 - installation d'Angular -- Français
 
Les générateurs de code, pour se simplifier la vie au quotidien
Les générateurs de code, pour se simplifier la vie au quotidienLes générateurs de code, pour se simplifier la vie au quotidien
Les générateurs de code, pour se simplifier la vie au quotidien
 
Sec day cuckoo_workshop
Sec day cuckoo_workshopSec day cuckoo_workshop
Sec day cuckoo_workshop
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, Kubernetes
 
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
 
Hands on drone challenge - xebicon'18
Hands on  drone challenge - xebicon'18Hands on  drone challenge - xebicon'18
Hands on drone challenge - xebicon'18
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Presentation
PresentationPresentation
Presentation
 
Prise en main de Jhipster
Prise en main de JhipsterPrise en main de Jhipster
Prise en main de Jhipster
 
ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
StyleCop avec visual studio 2010
StyleCop avec visual studio 2010StyleCop avec visual studio 2010
StyleCop avec visual studio 2010
 
Workshop IoT Hub : Pilotez une ampoule connectée
Workshop IoT Hub : Pilotez une ampoule connectéeWorkshop IoT Hub : Pilotez une ampoule connectée
Workshop IoT Hub : Pilotez une ampoule connectée
 
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation Générale
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Gérer sa dette technique avec SonarQube
Gérer sa dette technique avec SonarQubeGérer sa dette technique avec SonarQube
Gérer sa dette technique avec SonarQube
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 
XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...
XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...
XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
 

Intégration de SonarQube dans GitLab ci

  • 1. date: 25/10/2021 Intégration de SonarQube dans GitLab CI préparé par Wiem Fourati
  • 2. Objectif l’objectif est de faire l’analyse du code source des projets avec l’outil SonarQube lors de l'exécution d’une pipeline GitLab ci
  • 3. Les Étapes 1- préparer et lancer un service SonarQube 2- créer un projet sur SonarQube et connectez-le à votre projet sur GitLab 3- lancer la pipeline GitLab ci
  • 4. 1- préparer et lancer un service SonarQube on peut installer SonarQube et l’utiliser directement sur la machine ou bien sur conteneur docker: ● installez docker et créer un fichier docker-compose.yml dont le contenu: version: "3" services: sonarqube: image: sonarqube:9.1.0-community container_name: sonarqube ports: - "9000:9000” ● lancer le service avec la commande “docker-compose up -d”
  • 5. 2- créer un projet sur SonarQube et connectez-le à votre projet sur GitLab
  • 6. les deux options suivantes sont valides, faire le choix selon le besoin: - “From GitLab”: se connecter à votre compte GitLab et importer tous vos projets puis sélectionner le projet à analyser - “Manually”: créer un nouveau projet puis le connecter à GitLab
  • 7. Manually 1- saisir le nom de nouveau projet à analyser puis cliquez sur “Set up”
  • 8. 2- choisir l’option “GitLab ci”
  • 9. 3- sélectionner le type de projet (projet Golang,js,Python…) 4- créer un fichier “sonar-project.properties” dans la racine de votre projet (où existe le fichier “.gitlab-ci.yml”) sur le repository et copier les données puis cliquer sur “continue”
  • 10. 5- générer un jeton associé afin de l’attribuer dans la variable “SONAR_TOKEN” lors de l'exécution de la pipeline 6- enregistrer l’URL dans une variable “SONAR_HOST_URL”
  • 11. 7- créer un stage “test- sonarqube” dans votre fichier “.gitlab-ci.yml” et copier le code (encadré en rouge), ou bien créer un nouveau fichier .gitlab- ci.yml. puis cliquez sur “Finish this tutorial”
  • 12. From GitLab l’importation de vos projets à partir de GitLab directement vous permet d’avoir tous vos projets sur SonarQube 1- Activer l’authentification à 2 facteurs allez à https://gitlab.com/-/profile/account et activer l’authentification à deux facteurs de votre compte installer un authentificateur sur votre smartphone et scannez le QR code affiché, un code de 6 chiffre apparaît sur votre smartphone, saisir ce code dans la case “code pin” et entrez votre mot de passe pour la confirmation 2- Définir vos paramètres globaux Pour importer vos projets GitLab dans SonarQube, vous devez d'abord définir vos paramètres SonarQube globaux. Accédez à Administration > Configuration > Paramètres généraux > Intégrations de la plate-forme DevOps , sélectionnez l' onglet GitLab et spécifiez les paramètres suivants : - donnez un “nom de configuration” de votre choix - donnez “L'URL de l'API GitLab”, généralement : https://gitlab.com/api/v4 - précisez le “Jeton d'accès personnel” , généré par vous sur votre compte personnel 3- reprendre les mêmes étape dans la partie “Manually”
  • 13. 3- lancer la pipeline GitLab ci
  • 14. allez sur ce lien
  • 16. Support configuration complete sur GitLab: https://gitlab.com/empreinte/docker/sonarqube/-/tree/pipeline-integration documentation: https://docs.sonarqube.org/latest/#importing-your-gitlab-projects-into-sonarqube https://docs.sonarqube.org/8.5/analysis/scan/sonarscanner/ https://docs.sonarqube.org/8.5/analysis/gitlab-cicd/ https://hub.docker.com/_/sonarqube