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吗。因为我不确定如何检查?更新的答案。