【发布时间】:2020-11-12 10:30:19
【问题描述】:
最近我们的 SonarQube 服务器进行了升级,让我们有机会根据此处提到的配置将它与 GitLab 集成:
https://docs.sonarqube.org/latest/analysis/gitlab-cicd/
现在我们遇到的问题是external 声纳作业在未达到质量门的情况下使管道失败。
虽然这是正确且预期的行为,但我想知道是否有任何类型的配置不会使整个管道失败,即使没有达到质量门。
我担心的是,我们已经针对许多项目进行了开发,其中一些项目相当陈旧(遗留代码),并且可能并不总是达到为它们定义的质量门槛。我知道我所要求的并不是最优的——即应该始终达到质量关口——但鉴于我工作场所的当前情况,没有其他选择。
作为参考,我的sonar CI 工作如下:
sonar:
stage: analysis
variables:
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"
GIT_DEPTH: "0"
script: ./gradlew sonarqube -Dsonar.qualitygate.wait=true -Dsonar.projectKey=${CI_PROJECT_ID} ${ADDITIONAL_SONAR_OPTIONS}
allow_failure: true
rules:
- if: $CI_COMMIT_BRANCH == "master"
- if: $CI_COMMIT_BRANCH =~ /^support\/\d+[.]\d+$/ || $CI_COMMIT_BRANCH =~ /^support\/\d+$/
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "api"
when: never
作业设置为allow_failure: true,但反过来external 作业总是失败。我阅读了将其设置为false 的文档应该使管道不会失败,但似乎并非如此。
有什么办法可以做到这一点?我的 SonarQube 版本是8.1.0
【问题讨论】:
标签: gitlab sonarqube gitlab-ci