0

在Jenkins文件中,我想根据用户输入的变量来判断。如果输入值不是预期值,我希望任务正常退出,但是无论我使用 exit 0 还是在如下步骤脚本中使用 exit 1

steps {
        script {
          if ( BUILD_BRANCH == "'uat'||'prd'" ) {
            echo "uat和prd环境 不允许重新构建!!"
            exit 0
          }

我会得到错误

java.lang.NoSuchMethodError: No such DSL method 'exit' found among steps [acceptGiteeMR, addGiteeMRComment, ansiColor, archive, bat...

或者如果我用 sh 包装它

steps {
        script {
          if ( BUILD_BRANCH == "'uat'||'prd'" ) {
            echo "uat和prd环境 不允许重新构建!!"
            sh "exit 0"
          }

命令执行时不报错也不退出

如何在jenkinsfile中正常退出?

4

2 回答 2

0

使用return而不是exit 0.

此外,它不会退出整个 Jenkinsfile。它的范围是正在运行的闭包。所以return会跳过这一步。

于 2020-11-02T16:17:44.010 回答
0

像下面一样也可以得到工作!

steps {
        script {
          if ( BUILD_BRANCH == "'uat'||'prd'" ) {
              error "some msg"
          }
于 2020-11-02T01:46:56.637 回答