【发布时间】:2017-10-18 09:11:19
【问题描述】:
我正在尝试构建一个参数为的 Jenkins 流水线 可选:
parameters {
string(
name:'foo',
defaultValue:'',
description:'foo is foo'
)
}
我的目的是调用一个 shell 脚本并提供 foo 作为参数:
stages {
stage('something') {
sh "some-script.sh '${params.foo}'"
}
}
如果提供的值为空,shell 脚本将执行 Right Thing™ 字符串。
不幸的是,我不能只得到一个空字符串。如果用户不提供
foo 的值,Jenkins 会将其设置为 null,我将得到 null
(作为字符串)在我的命令中。
我找到了this related question,但唯一的答案并没有真正的帮助。
有什么建议吗?
【问题讨论】:
-
使用 shell 的快速解决方法:
sh "some-script.sh $([[ '${params.foo}' == 'null' ]] && echo '' || echo ${params.foo})" -
谢谢@Razvan。
为了记录,我把东西写成一个 shell 脚本只是为了发现我仍然需要为它做一些黑客和不可读的东西。总的来说,我认为可编写脚本的管道是一个好主意,但 Jenkins 确实存在问题,即使它试图变得体面……Facepalm
标签: jenkins-pipeline