À l'aide de waitForQualityGate dans un Jenkins déclarative pipeline

La suite de SonarQube (6.3) l'étape de l'analyse dans un déclarative pipeline dans Jenkins 2.50 à défaut avec cette erreur dans le journal de la console: http://pastebin.com/t2ja23vC. Plus précisément:

SonarQube d'installation définies dans le présent travail (SonarGate) ne correspond pas tout configuré à l'installation. Nombre d'installations qui peuvent être configurés: 1.

Mise à jour: après le changement "SonarQube" à "SonarGate" dans le Jenkins paramètres (sous SonarQube serveurs, donc ça va correspondre à la Jenkinsfile), j'ai une autre erreur: http://pastebin.com/HZZ6fY6V

java.lang.IllegalStateException: Impossible d'obtenir SonarQube id de tâche et/ou le nom du serveur. Veuillez utiliser le 'withSonarQubeEnv' wrapper pour exécuter votre analyse.


La scène est une modification de l'exemple de la SonarQube docs: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins#AnalyzingwithSonarQubeScannerforjenkins-AnalyzinginaJenkinspipeline

stage ("SonarQube analysis") {
     steps {
        script {
           STAGE_NAME = "SonarQube analysis"

           if (BRANCH_NAME == "develop") {
              echo "In 'develop' branch, don't analyze."
           }
           else { //this is a PR build, run sonar analysis
              withSonarQubeEnv("SonarGate") {
                 sh "../../../sonar-scanner-2.9.0.670/bin/sonar-scanner"   
              }
           }
        }
     }
  }

  stage ("SonarQube Gatekeeper") {
     steps {
        script {
           STAGE_NAME = "SonarQube Gatekeeper"

           if (BRANCH_NAME == "develop") {
              echo "In 'develop' branch, skip."
           }
           else { //this is a PR build, fail on threshold spill
              def qualitygate = waitForQualityGate()
              if (qualitygate.status != "OK") {
                 error "Pipeline aborted due to quality gate coverage failure: ${qualitygate.status}"
              } 
           }
        }
     }
  }     

J'ai également créé un webhook, sonarqube-webhook, avec l'URL http://****/sonarqube-webhook/. Devrait-il être comme ça, ou http://****/sonarqube/sonarqube-webhook? Pour accéder au serveur tableau de bord j'utilise http://****/sonarqube.

Dans SonarQube de la Qualité des Portes de l'article, j'ai créé une nouvelle qualité de porte:

À l'aide de waitForQualityGate dans un Jenkins déclarative pipeline

Je ne suis pas sûr si la mise en SonarGate est correct. Je ne l'utilisation de jenkins-moka pour générer un lcov.info fichier qui est utilisé dans Sonar pour générer les données sur la couverture.

Peut-être la qualité de porte réglage est mauvais réglage à faire? Le résultat final est de faire échouer le travail de Jenkins, si la couverture % n'est pas atteint.

À l'aide de waitForQualityGate dans un Jenkins déclarative pipeline

Enfin, je ne suis pas sûr si les configurations suivantes dans le Jenkins configuration du système sont tous requis:

À l'aide de waitForQualityGate dans un Jenkins déclarative pipeline

Et

(C'est 9000 pas 900... couper du texte dans la capture d'écran)
À l'aide de waitForQualityGate dans un Jenkins déclarative pipeline

Ne pas poster des images de code ou d'erreurs! Images et captures d'écran peut être une belle addition à un poste, mais s'il vous plaît assurez-vous que le poste est toujours claire et utile sans eux. Si vous publiez des images de code ou de messages d'erreur assurez-vous que vous copiez et collez ou saisissez le code/message dans le post directement.
Il n'y a pas de captures d'écran de code dans le post. Le post est super clair.

OriginalL'auteur Idan Adar | 2017-03-20