您可以使用 Shell 命令执行此操作:如果有人需要,请分享此信息
使用 Sonar Rest api 在质量门未通过时将构建标记为失败。在 Sonar Step 之后添加“Execute Shell”并使用以下代码
提示:在此步骤之前引入 10s 的休眠时间,只是为了确保 Sonar 站点更新任务结果状态。
从工作区的 report-task.txt 中获取 TASKURL
url=$(cat $WORKSPACE/.sonar/report-task.txt | grep ceTaskUrl | cut -c11-)
从 Sonar 服务器获取任务属性
curl -u admin:${admin_pwd} -L $url | python -m json.tool
设置任务状态以检查声纳扫描是否成功完成。
curl -u admin:${admin_pwd} -L $url -o task.json
status=$(python -m json.tool
回显 ${状态}
如果 SonarScan 成功完成,则设置分析 ID 和 URL。
如果 [ $status = 成功 ];那么
analysisID=$(python -m json.tool
analysisUrl="https://sonar.net/api/qualitygates/project_status?analysisId=${analysisID}
echo ${分析ID}
回声 ${analysisUrl}
其他
echo "声纳运行不成功"
退出 1
fi
使用分析 URL 获取 SonarGate 详细信息
curl -u admin:$admin_pwd ${analysisUrl} | python -m json.tool
curl -u admin:$admin_pwd ${analysisUrl} | python -m json.tool | grep -i "状态" |切-c28- | sed 's/.$//' >> tmp.txt
猫 tmp.txt
sed -n '/ERROR/p' tmp.txt >> error.txt
猫错误.txt
如果 [ $(cat error.txt | wc -l) -eq 0 ];那么
echo "质量门已通过!将 SonarQube 作业状态设置为成功!"
其他
退出 1
echo "Quality Gate 失败!将 SonarQube 作业状态设置为失败!"
fi
清理文件
未设置网址
未设置状态
未设置分析ID
未设置分析网址
task.json
tmp.txt
错误.txt