强制使gitlab CI中的sonarqube作业失败

强制使gitlab CI中的sonarqube作业失败,gitlab,gitlab-ci,Gitlab,Gitlab Ci,在gitlab ci中有如下作业: static_test_service: stage: test code script: - docker run --rm -v $(pwd):/data -w /data dparra0007/sonar-scanner:20171010-1 sonar-scanner -Dsonar.projectKey=$CI_PROJECT_NAMESPACE:$CI_PROJECT_NAME -Dsonar.projectN

在gitlab ci中有如下作业:

static_test_service:
  stage: test code
  script:
    - docker run --rm -v $(pwd):/data -w /data dparra0007/sonar-scanner:20171010-1 sonar-scanner
     -Dsonar.projectKey=$CI_PROJECT_NAMESPACE:$CI_PROJECT_NAME 
     -Dsonar.projectName=$CI_PROJECT_NAME 
     -Dsonar.branch=$CI_COMMIT_REF_NAME 
     -Dsonar.projectVersion=$CI_JOB_ID 
     -Dsonar.sources=./greetingapi/src 
     -Dsonar.java.binaries=./greetingapi/target 
     -Dsonar.gitlab.project_id=$CI_PROJECT_ID 
     -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA 
     -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
当sonarqube分析失败时,我将需要失败gitlab工作。但在这种情况下,会报告分析中的错误,但不会向Gitlab CI中的作业发送失败状态,并且该步骤始终以成功完成

似乎没有办法从“docker run”引发任何事件,由gitlab作业管理

如果sonarqube分析失败,你知道如何强迫工作失败吗


谢谢,

要为失败的质量门中断CI构建,您必须根据以下步骤编写脚本

1.在/report-task.txt中搜索CE任务URL(ceTaskUrl)和CE任务Id(CETASKUID)的值

2.调用/api/ce/task?id=XXX,其中XXX是从步骤1中检索到的ce任务id

3.等待一段时间,直到步骤2的状态为成功、取消或失败

4.如果失败,则中断构建(此处失败无法生成声纳报告)

5.如果成功,则使用/api/ce/task返回的JSON中的analysisId?id=XXX(步骤2),并立即调用/api/qualitygates/project_status?analysisId=YYY检查质量门的状态。 Ex:-分析ID

6.步骤5给出了关键、主要和次要错误阈值限制的状态


7.基于中断生成的限制。

要中断失败质量门的CI生成,您必须根据以下步骤编写脚本

1.在/report-task.txt中搜索CE任务URL(ceTaskUrl)和CE任务Id(CETASKUID)的值

2.调用/api/ce/task?id=XXX,其中XXX是从步骤1中检索到的ce任务id

3.等待一段时间,直到步骤2的状态为成功、取消或失败

4.如果失败,则中断构建(此处失败无法生成声纳报告)

5.如果成功,则使用/api/ce/task返回的JSON中的analysisId?id=XXX(步骤2),并立即调用/api/qualitygates/project_status?analysisId=YYY检查质量门的状态。 Ex:-分析ID

6.步骤5给出了关键、主要和次要错误阈值限制的状态

7.根据限制,打破构建