На основании ответа Винсента, и с помощью Pipeline utility steps, вот моя обновленная версия, которая работала для меня (с помощью файла отчета sonarscanner):
withSonarQubeEnv('SONAR 6.4') {
sh "${scannerHome}/bin/sonar-scanner"
sh "cat .scannerwork/report-task.txt"
def props = readProperties file: '.scannerwork/report-task.txt'
echo "properties=${props}"
def sonarServerUrl=props['serverUrl']
def ceTaskUrl= props['ceTaskUrl']
def ceTask
timeout(time: 1, unit: 'MINUTES') {
waitUntil {
def response = httpRequest ceTaskUrl
ceTask = readJSON text: response.content
echo ceTask.toString()
return "SUCCESS".equals(ceTask["task"]["status"])
}
}
def response2 = httpRequest url : sonarServerUrl + "/api/qualitygates/project_status?analysisId=" + ceTask["task"]["analysisId"], authentication: 'jenkins_scanner'
def qualitygate = readJSON text: response2.content
echo qualitygate.toString()
if ("ERROR".equals(qualitygate["projectStatus"]["status"])) {
error "Quality Gate failure"
}
}
Пожалуйста, обратите внимание на использование Дженкинс учетных данных (аутентификации: «jenkins_scanner») в получить качественные ворота в Sonar, которые будут отправлены.
Привет @tibo, Не могли бы вы сообщить мне, как вы прошли аутентификацию в sonarqube с помощью «jenkins_scanner»? –
Я получил его, он исходит из http-запроса плагина. https://stackoverflow.com/questions/41571090/basic-auth-with-jenkins-http-request-plugin Большое спасибо, этот ответ помог мне внедрить уведомления о сбоях с качеством ворот. –
Работы чудес. Спасибо, что поделились. –