Die folgende SonarQube (6.3) -Auswertungsphase in einer deklarativen Pipeline in Jenkins 2.50 schlägt mit diesem Fehler im Konsolenprotokoll fehl: http://pastebin.com/t2ja23vC. Insbesondere:Verwenden von "waitForQualityGate" in einer deklarativen Jenkins-Pipeline
SonarQube installation defined in this job (SonarGate) does not match any configured installation. Number of installations that can be configured: 1.
Update: nach "Sonarqube" auf "SonarGate" in den Jenkins Einstellungen zu ändern (unter Sonarqube Servern, so dass es die Jenkinsfile entsprechen werde), erhalte ich einen anderen Fehler: http://pastebin.com/HZZ6fY6V
java.lang.IllegalStateException: Unable to get SonarQube task id and/or server name. Please use the 'withSonarQubeEnv' wrapper to run your analysis.
die Bühne ist eine Abwandlung des Beispiels aus der 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}"
}
}
}
}
}
Ich habe auch einen Webhook, sonarqube-webhook
, mit der URL http://****/sonarqube-webhook/
erstellt. Sollte es so sein, oder http://****/sonarqube/sonarqube-webhook
? Um auf das Server-Dashboard zuzugreifen, verwende ich http://****/sonarqube
.
In Sonarqube der Quality Gates Abschnitt habe ich eine neue Qualität Tor:
Ich bin nicht sicher, ob die Einstellung in SonarGate korrekt ist. Ich verwende jenkins-mocha, um eine lcov.info-Datei zu generieren, die in Sonar verwendet wird, um die Coverage-Daten zu generieren.
Vielleicht ist die Qualität Gate-Einstellung die falsche Einstellung zu tun? Das Endergebnis besteht darin, dass der Job in Jenkins fehlschlägt, wenn die Abdeckung% nicht erreicht wird.
Schließlich bin ich, wenn die folgenden Konfigurationen in der Jenkins Systemkonfiguration nicht sicher sind, überhaupt erforderlich:
Und
(es ist 9000 nicht 900 .. (Text im Screenshot ausschneiden)
Danke, aber all dies nicht in der Dokumentation für diese Funktion erwähnt. Tatsächlich ist das Dokument so leicht, dass es sehr plug & play wirkt. Wenn dies nicht der Fall ist, muss SonarQube die Integration wirklich reibungsloser gestalten als es scheint. –
Das wird nicht erwähnt, weil es Details zur technischen Implementierung sind. Wir wollen es "plug and play" machen und sind zumindest bei Gradle-Projekten gescheitert. Trotzdem sollte es für andere Fälle funktionieren. Wir untersuchen ein Master/Slave-Problem. –
Danke, ich benutze einen Slave in meinem Jenkins-Setup. Derselbe Slave (Erstellungsmaschine) enthält auch den SonarQube-Server. –