SonarQube-Jenkins-代码问题还是超时?这就是问题所在
我到处都能看到这样的例子:SonarQube-Jenkins-代码问题还是超时?这就是问题所在,jenkins,automation,sonarqube,devops,sonarqube-scan,Jenkins,Automation,Sonarqube,Devops,Sonarqube Scan,我到处都能看到这样的例子: timeout(time: 1, unit: 'MINUTES') { // Just in case something goes wrong, pipeline will be killed after a timeout def qg = waitForQualityGate() // Reuse taskId previously collected by withSonarQubeEnv if (qg.status !
timeout(time: 1, unit: 'MINUTES') { // Just in case something goes wrong, pipeline will be killed after a timeout
def qg = waitForQualityGate() // Reuse taskId previously collected by withSonarQubeEnv
if (qg.status != 'OK') {
setBuildStatus ("${context}", "Sonarqube quality gate fail: ${qg.status}", 'FAILURE')
error "Pipeline aborted due to quality gate failure: ${qg.status}"
} else {
setBuildStatus ("${context}", "Sonarqube quality gate pass: ${qg.status}", 'SUCCESS')
}
我的问题是,如果有超时怎么办?我想有不同的通知,无论是超时还是代码失败?如果在测试期间超时怎么办?当然我可以在质量门之前进行一个简单的http查询,但是如果在质量门期间失败了呢?
有人对此有解决方案吗?如果您想知道“超时”块是否通过超过指定的时间退出,请将“超时”块包含在try/catch块中,并检查“FlowInterruptedException”
如果这是您的原始块:
timeout {
... do stuff
}
将其更改为:
import org.jenkinsci.plugins.workflow.steps.FlowInterruptedException;
try {
timeout {
... do stuff
}
}
catch (FlowInterruptedException ex) {
println "Caught \"" + ex + "\" waiting for quality gate."
}
你能举例说明FlowInterruptedException吗。因为我不确定如何检查?更新的答案。