虽然我知道这个问题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 {
...
}
}
}
我知道如果使用脚本化管道,功能会增加十倍,但我想知道是否可以使用声明性管道来做我想做的事情?
答案 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 }
}
}
}