From 62e48df7856cd41c3cf188a094944d6aea6d8738 Mon Sep 17 00:00:00 2001 From: Johannes Schnatterer Date: Mon, 16 Jul 2018 11:38:04 +0200 Subject: [PATCH 1/2] Jenkins: Also waits for SonarQube quality goal status for PRs. --- Jenkinsfile | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f139f54906..fe68eb4af0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,11 +36,9 @@ node() { // No specific label stage('SonarQube') { - def sonarQube = new SonarQube(this, 'sonarcloud.io') - analyzeWith(mvn) - if (!sonarQube.waitForQualityGateWebhookToBeCalled()) { + if (!waitForQualityGateWebhookToBeCalled()) { currentBuild.result = 'UNSTABLE' } } @@ -97,6 +95,17 @@ void analyzeWith(Maven mvn) { } } +boolean waitForQualityGateWebhookToBeCalled() { + + timeout(time: 2, unit: 'MINUTES') { // Needed when there is no webhook for example + def qGate = waitForQualityGate() + echo "SonarQube Quality Gate status: ${qGate.status}" + if (qGate.status != 'OK') { + return false + } + } +} + String getCommitAuthorComplete() { new Sh(this).returnStdOut 'hg log --branch . --limit 1 --template "{author}"' } From ffd69f053ccdb683ef5b81330f1274049b04bba4 Mon Sep 17 00:00:00 2001 From: Johannes Schnatterer Date: Mon, 16 Jul 2018 11:54:35 +0200 Subject: [PATCH 2/2] Jenkins: Success builds when the Quality Gate is passed --- Jenkinsfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index fe68eb4af0..4d11767e67 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -96,14 +96,15 @@ void analyzeWith(Maven mvn) { } boolean waitForQualityGateWebhookToBeCalled() { - + boolean isQualityGateSucceeded = true timeout(time: 2, unit: 'MINUTES') { // Needed when there is no webhook for example def qGate = waitForQualityGate() echo "SonarQube Quality Gate status: ${qGate.status}" if (qGate.status != 'OK') { - return false + isQualityGateSucceeded = false } } + return isQualityGateSucceeded } String getCommitAuthorComplete() {