gpt4 book ai didi

jenkins - 在 Jenkins 声明式管道中使用 waitForQualityGate

转载 作者:行者123 更新时间:2023-12-04 06:54:41 30 4
gpt4 key购买 nike

Jenkins 2.50 中声明性管道中的以下 SonarQube (6.3) 分析阶段失败,控制台日志中出现此错误:http://pastebin.com/t2ja23vC .进一步来说:

SonarQube installation defined in this job (SonarGate) does not match any configured installation. Number of installations that can be configured: 1.



更新:在 Jenkins 设置中将“SonarQube”更改为“SonarGate”(在 SonarQube 服务器下,因此它将与 Jenkinsfile 匹配)后,我收到一个不同的错误: http://pastebin.com/HZZ6fY6V

java.lang.IllegalStateException: Unable to get SonarQube task id and/or server name. Please use the 'withSonarQubeEnv' wrapper to run your analysis.



该阶段是对 SonarQube 文档中示例的修改: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins#AnalyzingwithSonarQubeScannerforJenkins-AnalyzinginaJenkinspipeline
stage ("SonarQube analysis") {
steps {
script {
STAGE_NAME = "SonarQube analysis"

if (BRANCH_NAME == "develop") {
echo "In 'develop' branch, don't analyze."
}
else { // this is a PR build, run sonar analysis
withSonarQubeEnv("SonarGate") {
sh "../../../sonar-scanner-2.9.0.670/bin/sonar-scanner"
}
}
}
}
}

stage ("SonarQube Gatekeeper") {
steps {
script {
STAGE_NAME = "SonarQube Gatekeeper"

if (BRANCH_NAME == "develop") {
echo "In 'develop' branch, skip."
}
else { // this is a PR build, fail on threshold spill
def qualitygate = waitForQualityGate()
if (qualitygate.status != "OK") {
error "Pipeline aborted due to quality gate coverage failure: ${qualitygate.status}"
}
}
}
}
}

我还创建了一个 webhook, sonarqube-webhook ,网址为 http://****/sonarqube-webhook/ .应该是这样的,还是 http://****/sonarqube/sonarqube-webhook ?要访问服务器仪表板,我使用 http://****/sonarqube .

在 SonarQube 的质量门部分中,我创建了一个新的质量门:

enter image description here

我不确定 SonarGate 中的设置是否正确。我确实使用 jenkins-mocha 生成一个 lcov.info 文件,该文件在 Sonar 中用于生成覆盖数据。

也许质量门设置是错误的设置?如果未满足覆盖率 %,最终结果将导致 Jenkins 的工作失败。

enter image description here

最后,我不确定Jenkins系统配置中的以下配置是否是必需的:

enter image description here

并且

(它是 9000 不是 900 ......在屏幕截图中剪切文本)
enter image description here

最佳答案

SonarQube Jenkins 插件扫描两个特定行的构建输出,用于获取 SonarQube 报告任务属性和项目 URL。如果您调用 sonar-scanner不输出这些行,waitForQualityGate() call 将没有任务 ID 来查找它们。因此,您必须找出正确的设置以使其更加详细。

extractSonarProjectURLFromLogsextractReportTask SonarUtils 中的方法插件类以了解它们是如何工作的:

  • ANALYSIS SUCCESSFUL, you can browse <project URL>用于添加指向徽章的链接(在构建历史中)
  • Working dir: <dir with report-task.txt>用于将任务 ID 传递给 waitForQualityGate步骤
  • 关于jenkins - 在 Jenkins 声明式管道中使用 waitForQualityGate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42909439/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com