詹金斯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的主要内容,如果未能解决你的问题,请参考以下文章