首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SonarQube不将waitForQualityGate()的状态返回给jenkins?

SonarQube不将waitForQualityGate()的状态返回给jenkins?
EN

Stack Overflow用户
提问于 2019-05-19 15:50:33
回答 6查看 8.3K关注 0票数 5

我在jenkins管道中使用了sonarQube。我在詹金斯安装了所有与声呐相关的插件。在jenkins配置系统中,我正确地配置了sonarqube服务器,并正确配置了SonarQube扫描仪。

这是jenkins管道代码..。

代码语言:javascript
复制
node{
stage('git checkout process'){
  echo 'started checkout'
  git 'https://github.com/ramkumar/sampleproject'
  echo 'completed sucessfully'
}

stage('compile package'){
  def mvnTool = tool name: 'Maven', type: 'maven'
  sh "${mvnTool}/bin/mvn clean install" 
}

  stage('SonarQube analysis') {
    withSonarQubeEnv('sonarqube') {
      mvnHome = '/opt/apache-maven/bin'
      sh "${mvnHome}/mvn sonar:sonar"

    }
  }

  stage("Quality Gate"){
          timeout(time: 1, unit: 'HOURS') {
              def qg = waitForQualityGate()
              if (qg.status != 'OK') {
                  emailext body: 'Your code was failed due to sonarqube quality gate', subject: 'Jenkins Failed Report', to: 'prakashpp666666@gmail.com'
                  error "Pipeline aborted due to quality gate failure: ${qg.status}"

              }
          }
      }

我还配置了声纳中的网络钩子。但是,当我构建作业时,3阶段waitForQualityGate()不是将ok状态返回给jenkins,而是显示检查服务器上SonarQube任务'AWrQj5In7abK9JVZ9‘的状态’SonarQube任务'AWrQj5In7abK9JVZ9‘状态是'IN_PROGRESS'

而且它是连续加载,它是没有完成。当我签入sonarqube时,它会显示响应:服务器不可达的。我不是在本地运行声纳,而是运行在码头上。有什么问题吗?

EN

回答 6

Stack Overflow用户

发布于 2020-03-26 10:02:10

为质量门配置SonarQube网页钩子

管理>配置> Webhooks >创建

URL应该指向您的Jenkins服务器http://{JENKINS_HOST}/sonarqube-webhook/

这事为我解决了。因为我不知道这个钩子。一旦我配置了这个,一切都进行得很顺利。

票数 5
EN

Stack Overflow用户

发布于 2019-07-03 12:42:03

尝试在检查之前放置sleep(60)命令:

代码语言:javascript
复制
sleep(60)
timeout(time: 1, unit: 'MINUTES') {
    def qg = waitForQualityGate()
    print "Finished waiting"
    if (qg.status != 'OK') {
        error "Pipeline aborted due to quality gate failure: ${qg.status}"
    }
}  

它为我解决了同样的问题。

票数 3
EN

Stack Overflow用户

发布于 2020-03-02 19:16:52

正如正式的docs 这里这里中所建议的那样,我能够通过在SonarQube服务器上为Jenkins实例配置webhook来使waitForQualityGate()正常工作。

在您的<your-jenkins-instance>/sonarqube-webhook/服务器配置中添加SonarQube表单的webhook,指向您的Jenkins实例。注意,尾斜杠很重要。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56209464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档