jenkins - 更改 Jenkins 参数变量值
问题描述
我是新的 Jenkins 管道。我想更改用户在运行时给定的参数值。下面给出的是我想要实现的脚本。
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
UnmodifiableCollection 类的一个实例,因此不能更改。
然而,环境变量是可以改变的,所以你可能想试试这个:
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}"
}
推荐阅读
- kubernetes - Traefik + Keycloak Gatekeeper Websocket 认证
- c# - 如何在不接触磁盘的情况下将 assembly.load(byte[]) 托管的 dll 加载到内存中
- c++ - 有没有办法制定一个也可以检测高原的峰值发现函数?
- python - Python np.select 将某些条件匹配到多项选择
- c# - 编写自己的 json 属性的最佳实践,该属性将被 json.net 反序列化忽略
- c - CS50 IDE 问题(发生意外错误。)
- javascript - 使用引导程序和单选按钮做出反应
- postgresql - 我无法连接到插入的sql连接问题
- sql - 检查 wp_posts 或 wp_postmeta 表中的更新
- python - 为什么 bs4 错误地解释网站架构上的 JSON?