更改Jenkins参数变量值
我是新来的詹金斯。我想在运行时更改用户给定的参数值。下面是我想要实现的脚本更改Jenkins参数变量值,jenkins,continuous-integration,jenkins-pipeline,jenkins-plugins,jenkins-groovy,Jenkins,Continuous Integration,Jenkins Pipeline,Jenkins Plugins,Jenkins Groovy,我是新来的詹金斯。我想在运行时更改用户给定的参数值。下面是我想要实现的脚本 pipeline{ agent any parameters{ string(name: 'Foo', defaultValue: 'abc-123, xyz-345' , description: '', trim: true) } stages{ stage('Change'){ steps{ script{ println &q
pipeline{
agent any
parameters{
string(name: 'Foo', defaultValue: 'abc-123, xyz-345' , description: '', trim: true)
}
stages{
stage('Change'){
steps{
script{
println "Foo"
println Foo
env.Foo = Foo.split(",").collect{val ->
return val.split("-")[0]
}.join(",")
}
}
}
}
}
node{
params.Foo = env.Foo
println params.Foo
}
当我尝试上面的例子时,我得到了这个异常java.lang.UnsupportedOperationException
有办法解决这个问题吗
编辑
输入:
abc-123,xyz-345
预期产出:
abc,xyz
parameters
是java
的不可修改集合类的一个实例,因此不能更改它
但是,环境变量可以更改,因此您可能希望尝试以下方法:
stages{
stage('Change'){
steps{
script{
println "Foo"
println params.Foo // makes clear what you are referring to
env.FOO = params.Foo.split(",").collect{val ->
return val.split("-")[0]
}.join(",")
}
}
}
}
}
node {
// don't touch params: params.Foo = env.Foo
// use only env.FOO to address your modified params
println "env.FOO is ${env.FOO}"
}
parameters
是java
的不可修改集合类的一个实例,因此不能更改它
但是,环境变量可以更改,因此您可能希望尝试以下方法:
stages{
stage('Change'){
steps{
script{
println "Foo"
println params.Foo // makes clear what you are referring to
env.FOO = params.Foo.split(",").collect{val ->
return val.split("-")[0]
}.join(",")
}
}
}
}
}
node {
// don't touch params: params.Foo = env.Foo
// use only env.FOO to address your modified params
println "env.FOO is ${env.FOO}"
}
参数的输入值是多少?预期输出是什么?@zett42问题已编辑。输入和预期输出随您的代码示例一起给出,我现在得到一个不同的异常:“groovy.lang.MissingPropertyException:没有这样的属性:bb for class:WorkflowScript”@zett42很抱歉,现在已经更正了参数的输入值是多少?预期输出是什么?@zett42问题已编辑。您的代码示例现在提供了输入和预期输出,我现在得到了一个不同的异常:“groovy.lang.MissingPropertyException:没有这样的属性:bb for class:WorkflowScript”@zett42很抱歉,现在已经更正了