azh*_*har 2 continuous-integration jenkins jenkins-plugins jenkins-groovy jenkins-pipeline
我是新的詹金斯管道。我想在运行时更改用户给出的参数值。下面给出的是我想要实现的脚本。
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
}
Run Code Online (Sandbox Code Playgroud)
当我尝试上面的例子时,我得到这个异常java.lang.UnsupportedOperationException
有办法解决这个问题吗?
编辑
输入:abc-123、xyz-345
预期输出:abc、xyz
parameters是 UnmodifyingCollection 类的实例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}"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6448 次 |
| 最近记录: |