gpt4 book ai didi

jenkins - 标记 Jenkins 构建成功,以防输入超时? (声明式管道)

转载 作者:行者123 更新时间:2023-12-04 06:15:24 24 4
gpt4 key购买 nike

我正在创建一个声明式 Jenkins 管道,如下所示:

pipeline {
agent {
label 'mylabel'
}
stages {
stage('Install dependencies') {
milestone()
steps {
sh "yarn install"
}
}
stage('Lint files') {
steps {
sh "eslint src"
}
}
stage('Create bundle') {
steps {
sh "yarn run build:server"
sh "yarn run build:client"
}
}
stage('Publish') {
steps {
timeout(time: 15, unit: 'SECONDS') {
input(message: 'Deploy this build to QA?')
}
// deployment steps
}
}

}
}

但是,如果超时步骤失败(因为我们不想部署此构建,或者没有人在那里按下按钮等),它的效果很好,则构建将标记为“中止”状态。不幸的是,这意味着例如 Github 将我们的拉取请求标记为“检查失败”。

有没有办法用 timeout() 步骤之前的状态声明构建?例如。如果在超时步骤之前构建成功,则即使超时发生,也应将其标记为成功。

最佳答案

由于您想要的只是让构建中止而不将其标记为失败,因此您只需添加一个简单的 try/catch到您的代码。

        stage('Publish') {
steps {
script {
def proceed = true
try {
timeout(time: 15, unit: 'SECONDS') {
input(message: 'Deploy this build to QA?')
}
} catch (err) {
proceed = false
}
if(proceed) {
// deployment steps
}
}
}
}

如果用户中止构建或超时,错误将被抑制,构建仍然成功,部署步骤将不会执行。

关于jenkins - 标记 Jenkins 构建成功,以防输入超时? (声明式管道),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44494238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com