要从GitLab CI中获取Sonar的分析结果,需要在GitLab CI配置文件中添加以下步骤:
- 在before_script中添加安装sonar-scanner命令
before_script:
- apt-get update -qy
- apt-get install -y unzip
- curl –insecure -OL https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
- unzip sonar-scanner-cli-4.6.2.2472-linux.zip
- export PATH=$PATH:/path/to/sonar-scanner/bin/
- 添加执行sonar-scanner命令的步骤,并将SonarQube服务器的URL和认证令牌等信息传递给它
sonarqube_check: stage: test script:
- sonar-scanner \
-Dsonar.host.url=https://mysonar.server.com \
-Dsonar.projectKey=my_project_key \
-Dsonar.sources=. \
-Dsonar.login=my_auth_token
其中,-Dsonar.login参数是用于验证SonarQube服务器访问权限的认证令牌。
- 添加获取Sonar分析结果的步骤,并将其保存到指定路径下的文件中
get_sonar_results: stage: deploy script:
- curl -u $SONAR_AUTH_TOKEN: https://mysonar.server.com/api/measures/component?component=my_project_key&metricKeys=bugs,vulnerabilities,code_smells,coverage,duplicated_lines_density | jq '.' > sonar_results.json
其中,$SONAR_AUTH_TOKEN是用于访问Sonar服务器的认证令牌,my_project_key是SonarQube上的项目键,metricKeys指定要获取的度量值。
- 最后,在GitLab CI中可视化Sonar分析结果
在GitLab CI/CD页面的Pipeline详情中,可以添加一个自定义工件来保存Sonar分析结果文件sonar_results.json,并使用GitLab内置的可视化工具展示它。例如:
sonarqube_report: stage: report artifacts:
paths:
- sonar_results.json
script:
- echo "SonarQube analysis results:"
dependencies:
- get_sonar_results
这样,就可以在GitLab CI/CD流水线中方便地查看和分析SonarQube分析结果了。