jenkins - 更改变量会删除 Jenkins groovy-script 中的其他变量
问题描述
我在 Jenkins 中使用了一个自由风格的工作,它有 2 个用户可以在开始时更改的参数:
- ReleaseBuild - 布尔值
- PluginVersion - 字符串
我使用系统常规脚本来读取更改变量
首先,我阅读了以下内容ReleaseBuild
:
def isRelease = build.buildVariableResolver.resolve("ReleaseBuild").toString();
println "Is ReleaseBuild: " + isRelease
输出显示正确的值:Is ReleaseBuild: true
我需要替换第二个变量的内容:
def verParameter = new StringParameterValue('PluginVersion', '1.0')
build.addOrReplaceAction(new ParametersAction(verParameter))
现在我ReleaseBuild
再次检查变量的内容:
def isStillRelease = build.buildVariableResolver.resolve("ReleaseBuild").toString();
println "Is ReleaseBuild: " + isStillRelease
现在变量似乎消失了。输出:Is ReleaseBuild: null
如何在PluginVersion
不删除ReleaseBuild
变量的情况下更改内容?
解决方案
同时我用一种解决方法解决了我的问题:
当我想更新值时,我更新所有值(这没关系,因为我只有两个)
def verParameter = new StringParameterValue('PluginVersion', ver)
def relParameter = new BooleanParameterValue('ReleaseBuild', isRelease)
build.addOrReplaceAction(new ParametersAction(verParameter, relParameter))
仍然希望得到更好的解决方案,但至少它有效。
推荐阅读
- python - 我试图让屏幕管理器首先根据可变时间 Kivy 打开不同的屏幕
- c++ - 二进制 DATA 容器解包器 (C++)
- c# - SQLite 也没有创建表,如何使用自定义类手动创建?
- r - 长到宽,具有基于转换变量计数的唯一 ID
- c++ - openmp 崩溃指令的奇怪行为
- math - 从矩形点查找方向
- selenium - Protractor/Selenium -> 如何在保存我的更改后检查放入表中的值是否被修剪掉了空格?
- java - Java中的通用方法-如何将参数类类型作为返回类型返回
- html - 使用 SASS 将转义字符写入 CSS 样式
- python-3.x - 如何在第一次使用 Python3、Selenium Chrome WebDriver 请求之前预加载 cookie?