从SonarQube 7.7开始,由于兼容性原因,Sonar-Gitlab插件不可用。
同时,有没有办法使Quality Gate上的Gitlab CI管道失败?
答案 0 :(得分:0)
Sonar Scanner在扫描执行文件夹中创建一个小文件夹,其中包含文件report-task.txt
。
- scan_exec_folder
| - .scannerwork
| | - report-task.txt
此report-task.txt
文件包含有关当前扫描的基本信息,包括
ceTaskUrl
(即当前扫描的Compute Engine Task URL)通过curl
ceTaskURL
,您可能会获得分析状态,而分析成功后,您将获得analysisId
。 (几乎可以肯定,必须等待 才能完成分析。例如,可以对while
的值使用status
。)
接下来,curl
在路径上/api/qualitygates/project_status?analysisId=${yourAnalysisId}
设置SonarQube服务器URL
json
将在ERROR
文档中返回Quality Gate计算的结果。如果状态为grep
,则说明至少有一个条件失败。
通过对awk
和Step Back Over
进行一些调整,您可以编写此过程的脚本并将其作为任务合并到Gitlab CI管道中。