答案 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命令会这样做)。