如何跳过阶段在Jenkins如果我的建设越来越失败,并希望直接跳到销毁阶段?

pepwfjgg  于 2023-04-05  发布在  Jenkins
关注(0)|答案(1)|浏览(218)

我想跳过阶段,在Jenkins如果我的建设是越来越失败或时间超过,并希望直接跳上销毁阶段

stage('Build') {
        options {                                                                                                                                                                   
            timeout(time: 10, unit: 'MINUTES')
        }
        steps {
            // Build steps
        }
    }
    // Other stages
}

}但我无法销毁我的构建,构建被中止也尝试了这个:

pipeline {
agent any
stages {
    stage('Stage 1') {
        steps {
            // Add your stage 1 steps here
        }
    }
    stage('Stage 2') {
        steps {
            // Add your stage 2 steps here
        }
    }
    // Repeat for stages 3 to 8
    stage('Last Stage') {
        steps {
            // Add your last stage steps here
        }
    }
}
post {
    always {
        script {
            if (currentBuild.result == 'FAILURE') {
                stage('Last Stage') {
                    // Add your last stage steps here
                }
            }
        }
    }
}

但这对我也不起作用
无法跳转到销毁阶段,如果得到错误r超时not able to jump on destroy stage if getting error r timeout
我想要的是-This I want

pxiryf3j

pxiryf3j1#

您可以添加一个失败后阶段,如果达到该阶段,该阶段将销毁:

post {
    failure {
        // destroy steps
    }
}

如果你的构建失败,那么它必须到达这个步骤。但是,如果它由于超时而中止,它将不会到达这里。相反,你必须捕获超时错误并通过执行以下操作将其转换为失败:

} catch (error) {
    println error
    failure(message: "Timeout reached.")
}

看看this question和它的答案,看看如何做到这一点。
你也可以将销毁逻辑放在一个函数中,并在failureaborted两种情况下调用该函数:

def destroy () {
    ...
}

...

post {
    failure {
        destroy()
    }
    aborted {
        destroy()
    }
}

相关问题