如何使基于声纳质量门的 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 构建的调用。
希望对您有所帮助!
如何使基于声纳质量门的 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 构建的调用。
希望对您有所帮助!