Jenkins:如果管道中的特定参数为';它是空的
在通用管道中,我有以下内容:Jenkins:如果管道中的特定参数为';它是空的,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,在通用管道中,我有以下内容: pipeline { agent any parameters { string(name: "TEST_VAR", description: "testvar") } stages { stage("My stage") { agent { docker {
pipeline {
agent any
parameters {
string(name: "TEST_VAR", description: "testvar")
}
stages {
stage("My stage") {
agent {
docker {
image 'myimage'
args "-u root:root"
}
}
steps {
script {
params.each {param ->
if (param.value == "") { sh "unset ${param.key}" }
}
sh 'printenv'
}
}
}
}
}
但是,即使我将参数保留为空,printenv步骤也会将TEST_VAR打印为现有的空环境变量,就好像unset步骤不起作用一样。我如何才能正确地取消设置它,使它完全不被声明?事实证明,jenkins参数是不可变的。我通过使用名为TEST_VAR_PARAM的参数解决了这个问题,然后检查它是否为空,并根据它的值创建一个TEST_VAR env值