我试图根据以下文档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变量设置变量来解决此问题,但这不起作用
有什么想法吗?
答案 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-ci理解变量SONAR_TOKEN
和SONAR_HOST_URL