首页 > 解决方案 > 更改变量会删除 Jenkins groovy-script 中的其他变量

问题描述

我在 Jenkins 中使用了一个自由风格的工作,它有 2 个用户可以在开始时更改的参数:

我使用系统常规脚本来读取更改变量

首先,我阅读了以下内容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变量的情况下更改内容?

标签: jenkinsjenkins-groovy

解决方案


同时我用一种解决方法解决了我的问题:
当我想更新值时,我更新所有值(这没关系,因为我只有两个)

def verParameter = new StringParameterValue('PluginVersion', ver)
def relParameter = new BooleanParameterValue('ReleaseBuild', isRelease)
build.addOrReplaceAction(new ParametersAction(verParameter, relParameter))

仍然希望得到更好的解决方案,但至少它有效。


推荐阅读