ZBLOG

gitlab ci使用web api解析sonar的分析结果并做逻辑判断

要在GitLab CI中使用Web API解析Sonar的分析结果并做逻辑判断,您可以按照以下步骤操作:

  1. 首先,在GitLab CI的配置文件中添加一个任务来执行Sonar扫描,并将扫描结果保存到一个JSON文件中。例如:
sonarqube:
  stage: test
  script:
    - sonar-scanner -Dsonar.login=$SONAR_LOGIN -Dsonar.projectKey=$SONAR_PROJECT_KEY -Dsonar.projectName=$SONAR_PROJECT_NAME -Dsonar.sources=. -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_TOKEN -Dsonar.analysis.mode=preview -Dsonar.qualitygate.wait=true -Dsonar.analysis.buildNumber=$CI_BUILD_NUMBER -Dsonar.report.export.path=sonar_report.json
  artifacts:
    paths:
      - sonar_report.json

这个任务会执行Sonar扫描,并将扫描结果保存到名为“sonar_report.json”的文件中。

  1. 接下来,在GitLab CI的配置文件中添加另一个任务来使用Web API读取JSON文件并进行逻辑判断。例如:
check_sonar_results:
  stage: deploy
  script:
    - curl -X GET $SONAR_HOST_URL/api/qualitygates/project_status?projectKey=$SONAR_PROJECT_KEY -u $SONAR_LOGIN:$SONAR_TOKEN -o qualitygate_result.json
    - jq . < qualitygate_result.json
    - jq -r '.projectStatus.status' < qualitygate_result.json > status.txt
    - if [ "$(cat status.txt)" = "OK" ]; then echo "Sonar analysis passed"; else echo "Sonar analysis failed"; fi

这个任务会使用curl命令调用Sonar的Web API来获取质量门限分析结果,然后使用jq命令解析JSON文件并提取分析结果,最后根据分析结果输出相应的提示信息。

请注意,上述脚本中的\(SONAR_LOGIN、\)SONAR_TOKEN、\(SONAR_PROJECT_KEY和\)SONAR_HOST_URL是GitLab CI环境变量,需要在GitLab CI项目配置中进行设置。其中\(SONAR_LOGIN和\)SONAR_TOKEN是访问Sonar Web API所需的凭证,\(SONAR_PROJECT_KEY是Sonar扫描项目的唯一标识符,\)SONAR_HOST_URL是Sonar服务器的URL地址。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=442

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?