如何从 Jenkins 管道中删除一个 属性?
How can I delete one property from Jenkins pipeline?
在我的 Jenkins 多分支管道中,我想在我的 Jenkinsfile 中使用以下代码:
def props = [
parameters([
string(
defaultValue: "Value1",
name: 'VALUE_NAME',
description: 'Something'),
string(
defaultValue: "Value2",
name: 'VALUE_NAME_v2',
description: 'Something else')
])]
properties(props)
if(condition1) {
// remove only VALUE_NAME
}
但是我怎样才能删除 属性 VALUE_NAME 仅当条件 1 为真时?
我只找到了 sintax:
props.removeAll { it.toString().contains('VALUE_NAME')}
^^ 这会删除所有参数,即使我的变量没有像本例 ("VALUE_NAME") 中那样具有公共主体的名称。
使用此语法,一旦构建有 运行 一次,我就无法在作业 UI 上看到 "Build with paramtres" 按钮,但会看到 "Build now"。
我的解决方法:
dep params = [
string(
defaultValue: "Value1",
name: 'VALUE_NAME_v1',
description: 'Something'),
string(
defaultValue: "Value2",
name: 'VALUE_NAME_v2',
description: 'Something else')
]
if(condition1) {
// remove only VALUE_NAME_v1
params.removeAll {it.toString().contains("VALUE_NAME_v1")}
}
def props = [
parameters(params)]
properties(props)
在我的 Jenkins 多分支管道中,我想在我的 Jenkinsfile 中使用以下代码:
def props = [
parameters([
string(
defaultValue: "Value1",
name: 'VALUE_NAME',
description: 'Something'),
string(
defaultValue: "Value2",
name: 'VALUE_NAME_v2',
description: 'Something else')
])]
properties(props)
if(condition1) {
// remove only VALUE_NAME
}
但是我怎样才能删除 属性 VALUE_NAME 仅当条件 1 为真时? 我只找到了 sintax:
props.removeAll { it.toString().contains('VALUE_NAME')}
^^ 这会删除所有参数,即使我的变量没有像本例 ("VALUE_NAME") 中那样具有公共主体的名称。
使用此语法,一旦构建有 运行 一次,我就无法在作业 UI 上看到 "Build with paramtres" 按钮,但会看到 "Build now"。
我的解决方法:
dep params = [
string(
defaultValue: "Value1",
name: 'VALUE_NAME_v1',
description: 'Something'),
string(
defaultValue: "Value2",
name: 'VALUE_NAME_v2',
description: 'Something else')
]
if(condition1) {
// remove only VALUE_NAME_v1
params.removeAll {it.toString().contains("VALUE_NAME_v1")}
}
def props = [
parameters(params)]
properties(props)