詹金斯waitForQualityGate错误的ID

Posted

技术标签:

【中文标题】詹金斯waitForQualityGate错误的ID【英文标题】:Jenkins waitForQualityGate wrong id 【发布时间】:2021-12-04 22:42:47 【问题描述】:

我正在尝试将 Sonarqube 集成到我的 Jenkins 管道中,在网关检查之前一切正常。

    stage('Sonar') 
        steps 
            withSonarQubeEnv(installationName: 'Sonarqube', credentialsId: 'sonar') 
            sh "$SCANNER_HOME/bin/sonar-scanner -D'sonar.projectKey=$JOB_NAME'"
            
        
    
    stage("Quality Gate") 
        steps 
          timeout(time: 1, unit: 'HOURS') 
            waitForQualityGate abortPipeline: true
          
        
    

withSonarQubeEnv 报告一个 id,例如:AXyPGkHZtOM2BAFbSUcX。使用 api/ce/task?id=AXyPGkHZtOM2BAFbSUcX 我可以看到进程状态和 analysisId(f.e. AXyPGkmqJtbgJ09MpQ6B) 关键是 waitForQualityGate 总是读取 api/qualitygates/project_status?analysisId=AXyLfj5JlX0w7MRERt_e 导致 404。 我从大约 5 小时就开始了,不能出去。 有人有想法吗?

【问题讨论】:

考虑将 waitForQualityGate 块移动到 withSonarQubeEnv 之后,在同一阶段。 【参考方案1】:

阶段看起来不错,HTTP 404 问题是由于 SonarQube 不理解 projectKey 的外观,从上面你有-D'sonar.projectKey=$JOB_NAME' 。命令&变量定义错误,应该是-Dsonar.projectKey='$JOB_NAME'

这样,SonarQube 服务器将能够使用正确的密钥将分析发送回 Jenkins webhook

【讨论】:

【参考方案2】:

我发现了问题。 我将 sonarcube 临时文件移动到另一个位置。这些更改也反映在 Jenkins 上,但插件无法处理,因此它在 temp-dir 更改之前查找文件。

【讨论】:

以上是关于詹金斯waitForQualityGate错误的ID的主要内容,如果未能解决你的问题,请参考以下文章

詹金斯 - sonarQube 问题 ||声纳扫描仪插件

在 Jenkins 声明式管道中使用 waitForQualityGate

詹金斯错误的卷权限

詹金斯 Maven 构建 137 错误

詹金斯中的堆空间错误

詹金斯错误:找不到模块'打字稿'