Jenkins 插件中所有可能的返回值是什么 "Sonarqube scanner"
What are all possible returned value in Jenkins plugin "Sonarqube scanner"
我有一个 Jenkins 管道作业,它构建我的应用程序,进行 Sonar 分析,然后通过质量检查我用 mvn deploy
.
部署在你的 Nexus 中
最初的设置是仅在成功的情况下发布(取自 official doc):
stage("Quality Gate"){
timeout(time: 1, unit: 'HOURS') {
def qg = waitForQualityGate()
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
现在我们想稍微改变一下 Jenkins 中的逻辑门,如果没有错误我们想发布(但例如警告是可以接受的)。
为此,我将 Jenkins satge 更改为:
stage("Quality Gate"){
timeout(time: 1, unit: 'HOURS') {
def qg = waitForQualityGate()
if (qg.status == 'Error') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
stage('Deploy to Nexus') {
sh "mvn deploy -DskipTests"
}
但现在,它似乎无法正常工作:即使 SonarQube 中的质量门出错,我的项目也总是被推送到 Nexus。
我可以通过更改条件来解决问题:
qg.status != 'OK' || qg.status != 'Warning'
有人知道错误状态的确切值是多少(可能还有其他值)吗?
文档似乎不完整,除了猜测正确的 return 值别无他法。
为了防止出现此类问题,我建议在没有确切案例的情况下进行测试:
if ('error'.equalsIgnoreCase(qg.status) ) {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
当使用这样的条件时,我的脚本运行良好,那么 returned 的值似乎全部为大写:'ERROR'.
可通过 SonarQube 管理设置中的 Webhooks 配置:https://docs.sonarqube.org/display/SONAR/Webhooks
因此,方法 returns 无论您为所有网关规则配置的是 OK 还是失败。
我有一个 Jenkins 管道作业,它构建我的应用程序,进行 Sonar 分析,然后通过质量检查我用 mvn deploy
.
最初的设置是仅在成功的情况下发布(取自 official doc):
stage("Quality Gate"){
timeout(time: 1, unit: 'HOURS') {
def qg = waitForQualityGate()
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
现在我们想稍微改变一下 Jenkins 中的逻辑门,如果没有错误我们想发布(但例如警告是可以接受的)。
为此,我将 Jenkins satge 更改为:
stage("Quality Gate"){
timeout(time: 1, unit: 'HOURS') {
def qg = waitForQualityGate()
if (qg.status == 'Error') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
stage('Deploy to Nexus') {
sh "mvn deploy -DskipTests"
}
但现在,它似乎无法正常工作:即使 SonarQube 中的质量门出错,我的项目也总是被推送到 Nexus。
我可以通过更改条件来解决问题:
qg.status != 'OK' || qg.status != 'Warning'
有人知道错误状态的确切值是多少(可能还有其他值)吗?
文档似乎不完整,除了猜测正确的 return 值别无他法。
为了防止出现此类问题,我建议在没有确切案例的情况下进行测试:
if ('error'.equalsIgnoreCase(qg.status) ) {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
当使用这样的条件时,我的脚本运行良好,那么 returned 的值似乎全部为大写:'ERROR'.
可通过 SonarQube 管理设置中的 Webhooks 配置:https://docs.sonarqube.org/display/SONAR/Webhooks
因此,方法 returns 无论您为所有网关规则配置的是 OK 还是失败。