Jenkins 声明式管道:当名称中有空格时如何访问参数值?
Jenkins declarative pipeline: How to access value of parameter when it has spaces in its name?
我只想在特定布尔参数为真时执行我的 Jenkins 管道的一个阶段。目前我的声明 Jenkinsfile 中有这个:
booleanParam(
defaultValue: false,
name: 'forceGenerateNuGet'
)
...
when {
expression { forceGenerateNuGet == "true" }
}
这很好用。但是上面是丑陋的,因为名称出现在 UI.
我想要这个(伪代码):
booleanParam(
defaultValue: false,
name: 'Force generate NuGet'
)
...
when {
expression { getValueOfParam('Force generate NuGet') == "true" }
}
这可能吗?
编辑:Devops Stack Exchange 上的这个 post 说我应该可以使用 params['Force generate NuGet']
.
不过这对我不起作用。我尝试应用它和 运行 一个我设置参数的构建,但它没有获取值,因此跳过了它应该执行的步骤。 :(
如果我告诉它输出参数值,它只是告诉我它们是空的。
script {
def force = params["Force generate NuGet"]
echo "Force generate NuGet: ${force}"
}
输出:
[2021-02-09T15:13:37.571Z] Force generate NuGet: null
更新:事实证明 params['Force generate NuGet']
确实有效。我有一个很长的 Jenkinsfile,其中包含一些遗留代码 覆盖 全局变量 params
。这就是为什么它对我不起作用。我修改了遗留代码,现在可以获取参数了
我只想在特定布尔参数为真时执行我的 Jenkins 管道的一个阶段。目前我的声明 Jenkinsfile 中有这个:
booleanParam(
defaultValue: false,
name: 'forceGenerateNuGet'
)
...
when {
expression { forceGenerateNuGet == "true" }
}
这很好用。但是上面是丑陋的,因为名称出现在 UI.
我想要这个(伪代码):
booleanParam(
defaultValue: false,
name: 'Force generate NuGet'
)
...
when {
expression { getValueOfParam('Force generate NuGet') == "true" }
}
这可能吗?
编辑:Devops Stack Exchange 上的这个 post 说我应该可以使用 params['Force generate NuGet']
.
不过这对我不起作用。我尝试应用它和 运行 一个我设置参数的构建,但它没有获取值,因此跳过了它应该执行的步骤。 :(
如果我告诉它输出参数值,它只是告诉我它们是空的。
script {
def force = params["Force generate NuGet"]
echo "Force generate NuGet: ${force}"
}
输出:
[2021-02-09T15:13:37.571Z] Force generate NuGet: null
更新:事实证明 params['Force generate NuGet']
确实有效。我有一个很长的 Jenkinsfile,其中包含一些遗留代码 覆盖 全局变量 params
。这就是为什么它对我不起作用。我修改了遗留代码,现在可以获取参数了