Je suis assez nouveau dans la communauté du développement et plus particulièrement dans les pratiques de DevOps. Dans le cadre du projet, nous essayons d'intégrer SonarQube à Gitlab. Nous avons effectué des travaux de recherche et développement sur SonarQube et Git CI (intégration continue). alors que pas pour Gitlab.
Dans quelle mesure est-il réaliste de configurer GitLab avec SonarQube pour l’inspection de la qualité du code pour chaque demande de tirage et quelle sera la meilleure pratique pour intégrer ces deux éléments?.
Merci
vous n'avez pas vraiment besoin d'un plugin. faire quelque chose comme ça dans votre .gitlab-ci.yml
stages:
- build
build_master:
image: maven
stage: build
artifacts:
paths:
- target/*.jar
script:
- mvn package sonar:sonar -Dsonar.Host.url=https://sonar.yourdomain.tld/
only:
- master
et chaque maître Push sera testé! (ceci est pour un Java projet ...)
À l'heure actuelle, il existe (à ma connaissance, deux plugins axés sur la communauté qui visent à fournir une analyse/intégration MR à GitLab.
Tous les deux passent actuellement par la phase de commentaires pour leur prochaine version et visent tous les deux à atterrir dans le centre de mise à jour avec cette version.
Avec les deux, vous pouvez exécuter une construction qui fournira des commentaires dans GitLab avec les violations récemment détectées. Les deux sont fortement inspirés du plugin GitHub de SonarSource.
Cependant, je ne suis pas en mesure de vous conseiller sur lequel des deux utiliser, car je suis le développeur le premier et donc partial.
J'étais dans la même exigence et voici comment j'ai implémenté,
Créez un coureur sans spécifier de balises et de type partagé. Créer un fichier .gitlab-ci.yml
fichier avec les commandes suivantes,
variables:
SONAR_URL: "http://your_sonar_url"
SONAR_LOGIN: "sonar_user_id"
SONAR_PASSWORD: "sonar_password"
sonarqube_master_job:
stage: test
only:
- master
image: maven:3.3.9-jdk-8-Alpine
script:
- mvn --batch-mode verify sonar:sonar -Dsonar.Host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.password=$SONAR_PASSWORD
Si vous créez un coureur avec des balises spécifiques, vous devez mentionner les balises dans le .gitlab-ci.yml
fichier
vous pouvez obtenir plus d'informations sur l'ajout de balises via ce lien, https://forum.gitlab.com/t/activated-specific-runner-is-not-working/7002
Voici comment je me suis débrouillé pour un MVP.
.gitlab-ci.yml
stages:
- sonarqube_test
sonarqube_test:
tags:
- your-tag-attached-to-gitlab-runner
stage: sonarqube_test
script:
- .cicd/sonarqube.sh
sonarqube.sh
fichier
#!/bin/bash
#
# Args: deploy.sh
#
cd ~
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.Zip
unzip sonar-scanner-cli-3.3.0.1492-linux.Zip
rm sonar-scanner-cli-3.3.0.1492-linux.Zip
chmod 777 sonar-scanner-3.3.0.1492-linux/conf/sonar-scanner.properties
echo 'sonar.Host.url=http://<your_sonarqube_server_url>' >> sonar-scanner-3.3.0.1492-linux/conf/sonar-scanner.properties
chmod +x sonar-scanner-3.3.0.1492-linux/bin/sonar-scanner
sonar-scanner-3.3.0.1492-linux/bin/sonar-scanner \
-Dsonar.projectKey=<project_name> \
-Dsonar.sources=. \
-Dsonar.Host.url=http://<your_sonarqube_server_url> \
-Dsonar.login=<token_from_gitlab_UI>