基于currentBuild.result的条件步骤

时间:2019-04-10 15:41:49

标签: jenkins

我希望仅在currentBuild.result未设置为UNSTABLE时执行此步骤,这是在执行测试步骤后立即执行的,我设法弄清楚如果不是这种情况,在我的管道中设置为null。在尝试确定变量为null时,将变量与“”进行比较应该可以,但是在我的工作步骤中似乎不起作用:

stage('Post test') {
    when {
        expression {
            return (currentBuild.result == "")
        }
    }
    steps {

有人可以建议我在条件步骤表达式中使用什么吗?

2 个答案:

答案 0 :(得分:0)

未经测试,不确定这是否正是您的意思,但是类似这样的东西?

stage('Post test') {
  steps {
    conditionalSteps {
      condition {
        status("Success","Success") # worst result, best result
      }
      steps {
        shell("echo 'this is my command'")
      }
    }
  }
}

答案 1 :(得分:0)

如果要在构建结束时运行它,可以将其包装在帖子中。如果要在继续执行管道的同时运行命令,我认为您必须将其包装在脚本闭包中。这未经测试,但我相信它将满足您的需求:

stages {
    stage('1') {}
    stage('2') {}
    stage('3') {
        steps {
            script {
                if (currentBuild.result == "UNSTABLE") {
                    println "this should be unstable"
                }
            }
        }
    }
    post {
        unstable {
            println "here be unstable"
        }
    }
}