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

时间:2019-10-03 07:38:37

标签: go-cd

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

我希望网关失败时,该阶段也会失败。有没有可以做的配置来使构建失败

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

基于@moritz的回答,这对我有用。

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

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服务器将根据构建状态返回ERROR和OK。

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

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

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

希望对您有帮助!

答案 1 :(得分:0)

当退出代码非零时,GoCD会使任务(以及阶段和作业,除非另有配置)失败。

因此,您需要携带正在执行的任何命令,以通过非零退出代码指示失败(大多数UNIX命令会这样做)。