Problème: Je configure jenkins + sonar + github intégration automatique vérifier le code statique de pullrequest via le sonar.
Ma configuration:
Sonar installé avec github
Jenkins installés
Dans l'action jenkins post-build, j'ai les propriétés suivantes
-Dsonar.github.login=bhuwang -Dsonar.github.repository=company/repo -Dsonar.verbose=true -Dsonar.analysis.mode=preview -Dsonar.issuesReport.console.enable=true -Dsonar.forceUpdate=true -Dsonar.github.login=gitusername -Dsonar.github.oauth=token
Dans ce lien j'ai lu que je dois fournir les propriétés suivantes lors de l'exécution de sonarqube:
J'ai ajouté toutes les propriétés sauf sonar.github.pullRequest. Je ne sais pas comment obtenir dynamiquement cette valeur de propriété. Il semble que les quatre propriétés ci-dessus soient indispensables pour fonctionner correctement.
Edit: J'ai trouvé le moyen d'ajouter la propriété -Dsonar.github.pullRequest = pullrequestNo
Et la bonne nouvelle est que cela fonctionne parfaitement bien maintenant avec la demande de traction codée en dur non. mais j'ai besoin de la méthode dynamique pour obtenir la demande de pull no.
Quelqu'un sait-il comment obtenir le no de demande de tirage. dynamiquement dans jenkins.?
J'ai trouvé que le générateur de demande de tirage fonctionnera, mais pas de chance de ma part. Je ne suis pas en mesure d'utiliser les variables d'environnement du générateur de demandes d'extraction dans les propriétés du sondeur.
Enfin, je suis en mesure de résoudre ce problème. Voici le détail:
Installez Jenkins avec les plugins suivants
Suivez ce lien pour configurer le plug-in du générateur de demande d'extraction: https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin#GitHubpullrequestbuilderplugin-EnvironmentVariables
Dans la section des propriétés supplémentaires, fournissez les propriétés de sondeur suivantes
-Dsonar.sourceEncoding=UTF-8 -Dsonar.analysis.mode=preview -Dsonar.github.repository=company/repo -Dsonar.github.login=gitusername -Dsonar.github.oauth=oauthtoken -Dsonar.Host.url=sonarhostedurl -Dsonar.login=admin -Dsonar.password=pass -Dsonar.github.pullRequest=${ghprbPullId} ${ghprbPullId}: this will be provided via github pullrequest builder plugin
Remarque: Le travail doit être déclenché via le plugin pullrequest builder sinon $ {ghprbPullId} retournera vide. Si vous exécutez le travail manuellement, cela ne fonctionnera pas car vous devez passer cette propriété $ {ghprbPullId} en tant que paramètre de génération. Si vous souhaitez vérifier le paramètre d'environnement disponible, suivez ceci Variables d'environnement Git à utiliser dans l'exécution de scripts Jenkins Shell
J'espère que ça aide.
Trop longtemps pour un commentaire donc je vais devoir l'écrire ici.
Après quelques recherches sur le Web, j'ai trouvé une question sur SO de quelqu'un à quelques pas devant vous dans le processus de configuration d'un système similaire, ici Ils essaient de faire fonctionner tout cela avec Maven, je ne sais pas si vous l'êtes aussi, mais de toute façon vous pouvez alors voir le lien qu'ils ont utilisé pour les aider avec leur script:
https://github.com/SonarSource/sonarqube/blob/master/travis.sh
Cela montre qu'ils doivent écrire un script qui récupérera dynamiquement le numéro de tirage pour eux. Je pense que vous devrez peut-être suivre une approche similaire et écrire un script qui récupérera le numéro pour vous, je crois qu'un des fichiers de conf de github garde la trace du numéro de demande d'extraction actuel à ses propres fins de suivi.
Pas vraiment une réponse aussi simple que vous l'auriez espéré, mais j'espère que ce sont de nouvelles informations qui vous aideront à y arriver.