GitLab SonarQube CI / CD变量未传递到管道

时间:2020-02-04 16:48:27

标签: sonarqube gitlab

我试图根据以下文档https://docs.sonarqube.org/latest/analysis/gitlab-cicd/将GitLab CI / CD与SonarQube 8.1集成。

我尝试将SonarScanner用于Maven示例配置

image: maven:latest
variables:
  SONAR_TOKEN: "your-sonarqube-token"
  SONAR_HOST_URL: "http://your-sonarqube-url"
  GIT_DEPTH: 0
sonarqube-check:
  script:
    - mvn verify sonar:sonar -Dsonar.qualitygate.wait=true
  allow_failure: true
  only:
    - merge_requests
    - master

问题在于它看起来像SONAR_HOST_URL,并且可能由于不清楚的原因而忽略了SONAR_TOKEN。查看管道日志时,我得到

[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar (default-cli) on project sonar-java-test: Unable to execute SonarQube: Fail to get bootstrap index from server: Failed to connect to localhost/0:0:0:0:0:0:0:1:9000: Connection refused (Connection refused) -> [Help 1]

我试图通过使用gitlab(12.3.2)CI / CD变量设置变量来解决此问题,但这不起作用

enter image description here

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

文档似乎不是最新的。

您应该在maven命令中添加-Dsonar.host.url-Dsonar.host.url参数以默认设置:

image: maven:latest
variables:
  SONAR_TOKEN: "your-sonarqube-token"
  SONAR_HOST_URL: "http://your-sonarqube-url"
  GIT_DEPTH: 0
sonarqube-check:
  script:
    - mvn verify sonar:sonar -Dsonar.qualitygate.wait=true -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_TOKEN
  allow_failure: true
  only:
    - merge_requests
    - master

答案 1 :(得分:1)

Protected屏幕截图中的Gitlab > Variables切换指向受保护的分支标签。这并不意味着该变量受保护。

Masked切换开关可保护变量泄漏到日志等中。

Gitlab > Variables > Protected

gitlab-ci理解变量SONAR_TOKENSONAR_HOST_URL

参考:https://docs.sonarqube.org/latest/analysis/gitlab-cicd/