我在springboot中有一个应用程序,它使用gradle来构建代码。
我在SonarQube上设置了https://github.com/gabrie-allaigre/sonar-gitlab-plugin并集成了gitlab CI 分析每次推送/提交的代码。我想要实现的是在分析失败时中断推送/提交。 下面是我的.gitlab-ci.yml
image: XXXXXX:oraclejdk:1.8.0_121
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
sonarqube_master_job:
stage: test
only:
- master
- release2.0
script:
- ./gradlew assemble
- ./gradlew -x test sonarqube -Dsonar.host.url=http://sonarqube.XXX.XXX.XXX:9000/sonarqube -Dsonar.login=xxxxxxxxxxxxxxxxxxxx
sonarqube_preview_feature_job:
stage: test
only:
- /^feature\/*/
- development
script:
- git checkout $CI_COMMIT_REF_NAME
- git merge --no-commit --no-ff
- ./gradlew assemble
- ./gradlew -x test sonarqube -Dsonar.host.url=http://XXXX.XXXXX.com:9000/sonarqube -Dsonar.login=xxxxxxxxxxxxxxxxxxxxx -Dsonar.analysis.mode=preview -Dsonar.gitlab.commit_sha=$CI_COMMIT_REF -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.gitlab.project_id=$CI_PROJECT_ID --stacktrace
如果分析失败,如何确保推送失败?我需要使用webhooks吗?是否有样本CI文件?
答案 0 :(得分:0)
@jibsonline,您可以参考以下链接中提供的我的答案。 但是,该脚本仅回答如何打破声纳分析的基础并显示结果。
How to integrate Sonar Quality Gates with Gitlab-CI
由于gitlab触发了构建,所以一旦推送更改,就不建议设置自动化工具来代表您还原代码更改。每当构建失败时,编写脚本(依赖项),以使代码不会被部署。由于未部署代码,因此不会影响您的环境。此外,每当构建失败时,请设置电子邮件配置。