如何使基于声纳质量门的 GoCD 构建失败?

how to fail the GoCD build based on the sonar quality gate?

如何使基于声纳质量门的 GO 构建失败?

我预计当网关出现故障时该阶段也会出现故障。是否有任何配置可以使构建失败

当退出代码为非零时,GoCD 会失败任务(因此阶段和作业,除非另外配置)。

所以你需要带上你正在执行的任何命令来通过非零退出代码(大多数 UNIX 命令都会这样做)来指示失败。

根据@moritz 的回答,这对我有用。

我创建了一个 bat 文件来检查 SONAR 项目的状态代码,在执行 SONAR 构建后并根据响应的状态,将 return 退出代码。

For /F "Delims=" %%A In ('"curl  http://mysonarserver/api/qualitygates/project_status?projectKey=com.mypackage:sampleproject | jq ".projectStatus.status""') Do Set "test=%%~A"
echo %test%
If /I "%test%"=="ERROR" exit -1
If /I "%test%"=="OK" exit 0

在我的例子中,SONAR 服务器会根据构建状态 return ERROR 和 OK。

我已经使用 curl 和 jq 从命令行发出 http 请求并分别解析对 json 的响应。

我必须进行一些调整才能使其在 Windows 上运行,希望它也能在 Linux 上运行。

如果需要,您还可以从此脚本添加对 Sonar 的 Maven 构建的调用。

希望对您有所帮助!