gpt4 book ai didi

sonarqube - 如何将 Sonar 质量门与 Gitlab-CI 集成

转载 作者:行者123 更新时间:2023-12-02 07:21:44 25 4
gpt4 key购买 nike

我有一个 gitlab-ci 集成,需要 Sonar 分析,如果质量门通过,则构建 docker 图像。

这可以使用 gitlab-ci 吗?

最佳答案

为了打破质量门失败的 CI 构建,

1.在/report-task.txt中搜索CE任务URL(ceTaskUrl)和CE的值
任务 ID (ceTaskId)

2.Call/api/ce/task?id=XXX 其中XXX是从步骤1中检索到的CE Task Id
例如:- https:///api/ce/task?id=您的 ceTaskId

3.等待一段时间,直到状态为 SUCCESS、CANCELED 或 FAILED 从步骤 2

4.如果失败,则中断构建(这里失败是无法生成 Sonar 报告)

5.如果成功,那么使用/api/ce/task返回的JSON中的analysisId?
id=XXX(step2) 并立即调用/api/qualitygates/project_status?analysisId=YYY
检查质量门的状态。
例如:- https:///api/qualitygates/project_status?analysisId=Your
分析ID

6.Step 5 给出关键、主要和次要错误阈值限制的状态

7.基于极限突破构建。

8. 使用脚本时遵循适当的缩进

build:
stage: build
before_script:
- yum -y install epel-release
- yum -y install jq
- yum install -y coreutils
script:
- mvn sonar:sonar -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN_TOKEN -Dsonar.working.directory=../target/.sonar
- export url=$(cat ../target/.sonar/report-task.txt | grep ceTaskUrl | cut -c11- ) #URL where report gets stored
- sleep 15s #Wait time for the report
- curl -k -u "$SONAR_LOGIN_TOKEN":"" $url -o analysis.txt
- export status=$(cat analysis.txt | jq -r '.task.status') #Status as SUCCESS, CANCELED or FAILED
- export analysisId=$(cat analysis.txt | jq -r '.task.analysisId') #Get the analysis Id
- |
if [ "$status" == "SUCCESS" ];then
echo -e "SONAR ANALYSIS SUCCESSFUL...ANALYSING RESULTS";
curl -k -u "$SONAR_LOGIN_TOKEN":"" https://yourSonarURI/api/qualitygates/project_status?analysisId=$analysisId -o result.txt; #Analysis result like critical, major and minor issues
export result=$(cat result.txt | jq -r '.projectStatus.status');

if [ "$result" == "ERROR" ];then
echo -e "91mSONAR RESULTS FAILED";
echo "$(cat result.txt | jq -r '.projectStatus.conditions')"; #prints the critical, major and minor violations
exit 1 #breaks the build for violations
else
echo -e "SONAR RESULTS SUCCESSFUL";
echo "$(cat result.txt | jq -r '.projectStatus.conditions')";
exit 0
fi
else
echo -e "\e[91mSONAR ANALYSIS FAILED\e[0m";
exit 1 #breaks the build for failure in Step2
fi

关于sonarqube - 如何将 Sonar 质量门与 Gitlab-CI 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44086452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com