首页 > 解决方案 > 詹金斯一步一步与用户交互并失败

问题描述

在声明性 Jenkinsfile 中,我有一个步骤让用户交互继续或中止剩余的工作。在某个超时后,作业终止。

    stage("User Confirmation") {
        steps {
            timeout(time: 5, unit: 'MINUTES') {
                input "Are you sure you want to deploy to ${params.omgeving} ? "
            }
        }
    }

但是,我想取消超时,以便在用户不回答问题时继续工作。我怎样才能做到这一点?

标签: jenkinsjenkins-pipelinejenkins-declarative-pipeline

解决方案


您可以使用try/catch块来输入https://support.cloudbees.com/hc/en-us/articles/230922428-Pipeline-How-to-add-an-input-step-that-c​​ontinues -if-aborted-using -价值

catchError/warnError詹金斯https://www.jenkins.io/doc/pipeline/steps/workflow-basic-steps/#catcherror-catch-error-and-set-build-result-to-failure 在您的情况下的方法会像所以

stage("User Confirmation") {
  steps {
    script {
      try {
        timeout(time: 5, unit: 'MINUTES') {
          input "Are you sure you want to deploy to ${params.omgeving} ? "
        }
      } catch (err) {
        print("continue")
      }
    }
  }
}


推荐阅读