【发布时间】:2018-04-24 01:37:54
【问题描述】:
我正在使用 Jenkins 2.89、SonarQube Scanner for Jenkins 2.6.1 和 SonarQube 6.7,配置了 Jenkins 的 webhook。
我正在触发声纳分析:
stage("SonarQube Analysis") {
script {
workspace = resolveWorkspacePath()
withEnv(["JAVA_HOME=${ tool 'java-8'}","PATH+MAVEN=${tool 'Maven 3.2.2'}/bin:${env.JAVA_HOME}/bin"]) {
withSonarQubeEnv('Sonar Solem') {
sh "mvn -f ${workspace}/pom.xml org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar -Dsonar.host.url=http://sonar.mycompany.cl"
}
}
}
然后在下一阶段收集状态:
stage("SonarQube Quality Gate") {
steps {
script {
timeout(time: 1, unit: 'HOURS') {
def qg = waitForQualityGate()
if (qg.status != 'OK') {
echo "Status: ${qg.status}"
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
}
}
登录控制台显示:
[Pipeline] script
[Pipeline] {
[Pipeline] timeout
Timeout set to expire in 1 hr 0 min
[Pipeline] {
[Pipeline] waitForQualityGate
Checking status of SonarQube task 'AV-nIGNjEMS3I3uac4Dq' on server 'Sonar MyCompany'
SonarQube task 'AV-nIGNjEMS3I3uac4Dq' status is 'IN_PROGRESS'
[Pipeline] echo
Status: NONE
[Pipeline] error
[Pipeline] }
查看日志记录级别,我看到 SonarQube webhook POST 具有正确的有效负载:
Received POST from 10.0.0.236
Nov 10, 2017 3:27:06 PM FINE org.sonarsource.scanner.jenkins.pipeline.SonarQubeWebHook
Full details of the POST was {"serverUrl":"http://sonar.mycompany.cl","taskId":"AV-nLx-zEMS3I3uac4Ds","status":"SUCCESS","analysedAt":"2017-11-10T15:25:50-0300","changedAt":"2017-11-10T15:25:50-0300","project":{"key":"com.mycompany:mycomponent","name":"My Company Component","url":"http://sonar.mycompany.cl/dashboard?id=com.mycompany%3Amycomponent"},"branch":{"name":"master","type":"LONG","isMain":true,"url":"http://sonar.mycompany.cl/dashboard?id=com.mycompany%3Amycomponent"},"properties":{}}
我没有找到一个可行的解决方案,所以我想它对大多数人来说都能正常工作。我正在为每个组件使用最新版本,也许是回归?
问候
【问题讨论】:
-
如上链接所述,在 stage('SonarQube analysis') AND stage("Quality Gate") 之间添加 'sleep 10' 对我们有帮助。
-
不是重复的,因为 webhook 已正确发布到 Jenkins。无论如何,我尝试了 10 秒睡眠,但问题仍然存在。