如何从Jenkins pipeline中删除一个属性?

rxztt3cl  于 2022-11-02  发布在  Jenkins
关注(0)|答案(1)|浏览(184)

在我的Jenkins多分支管道中,我想在Jenkins文件中使用以下代码:

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
}

但是,如何仅在condition1为真的情况下删除属性VALUE_NAME?我只找到了sintax:

props.removeAll { it.toString().contains('VALUE_NAME')}

^^这将删除所有参数,即使我的变量没有像本例中那样具有公共主体的名称(“VALUE_NAME”)。
而且有了这个sintax,一旦构建运行了一次,我就不能在作业UI上看到“用参数构建”按钮,而是“立即构建”。

ekqde3dh

ekqde3dh1#

我的解决方法:

脚本

def 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)

相关问题