【发布时间】:2018-06-21 14:58:47
【问题描述】:
我正在 Jenkins 中构建一个管道,在这个管道中,我调用了一个 shellscript:sh "helm upgrade --install $app --set myVar=$myVar"
现在,在我的本地机器上的终端中尝试此操作后,我发现对于 myVar 的某些值,需要在命令行中引用它。 (特别是我传递了一个 YAML 列表,例如:"{foo,bar,baz}")
现在事实证明这并不像看起来那么简单。我的第一次尝试是:
sh "helm upgrade --install $app --set myVar='$myVar'"
但在日志中,我们看到最终运行的命令看起来像
sh helm upgrade --install appname --set myvar={foo,bar,baz}
而这,令人沮丧的是,helm 没有正确解析。
所以我想,“双引号也可以”,我尝试:
sh "helm upgrade --install appname --set myvar=\"$myVar\""
但可惜的是,日志讲述的是同样的老故事:
sh helm upgrade --install appname --set myvar={foo,bar,baz}
所以。我如何说服我的 jenkins-pipeline 以
身份运行命令sh "helm upgrade --install appname --set myvar="{foo,bar,baz}"
另外,为什么这没有按预期工作?
【问题讨论】:
标签: shell jenkins groovy kubernetes-helm