根据脚本输出过早退出声明式管道

时间:2019-01-11 10:37:13

标签: jenkins-pipeline

虽然我知道这个问题clean way to exit declarative Jenkins pipeline as success,但我还是想了解如何使用它(skipBuild变量从何而来?)。

我有一个脚本来确定管道是否应该继续,但是我不确定如何将其组合在一起(我可以根据需要自由构建脚本)。

pipeline { 
    agent {
        docker { image 'python:3-alpine' }
    }

    stage('Should I continue') {
        steps {
            python should_i_continue.py
        }
        when { ? == true } 
        stages {
           ...
        }
    }
}

我知道如果使用脚本化管道,功能会增加十倍,但我想知道是否可以使用声明性管道来做我想做的事情?

1 个答案:

答案 0 :(得分:0)

您可以使用任何自定义变量,您将在管道步骤中根据某些条件将其设置为true | false,并且根据该条件需要执行的所有阶段都必须具有以下格式:

stage('Should Continue?') {
   setBuildStatus("Build complete", "SUCCESS");
   when {
     expression {skipBuild == true }
   }
}

换句话说,为您提供一些清晰的图片,请查看以下抽象示例:

node {
  skipBuild = false

  stage('Checkout') {
    ...
    your checkout code here
    ...
  }

  stage('Build something') {
    ...
    some code goes here
    skipBuild = true
    ...
  }

  stage('Should Continue?') {
    setBuildStatus("Build complete", "SUCCESS");
    when {
       expression {skipBuild == true }
    }
  }
}