Jenkinsfile :如何修改在管道 jenkins 中传递的字符串参数



我正在使用 Jenkins 管道。

在我的jenkinsfile下,我在 shell 命令中调用了一个 ansible 剧本:

它看起来像这样:

stage('Run Playbook') {
steps {
script{
sh " ansible-playbook myplaybook.yml 
-e myparam="${MY_PARAM}" "
}
}
}

如您所见:在作业中我的参数是MY_PARAM,它是一个字符串参数,并且可能包含一些空格。

我的目的是替换逗号 (-( 的所有空格,并将其传递给剧本 ?

所以我被建议注入:

.replace('', '-')

但是使用Jenkinsfile语法,我无法正确做到这一点

建议?

${...}中的所有内容都是常规的Groovy表达式,因此您可以进行任何您想要的翻译。

stage('Run Playbook') {
steps {
script {
sh "ansible -playbook myplaybook.yml -e myparam="${MY_PARAM.replace(' ', '-')}""
}
}
}

或者,您可以在environment块中进行此替换。

stage('Run Playbook') {
environment {
ANSIBLE_MY_PARAM="${MY_PARAM.replace(' ', '-')}"
}
steps {
script {
sh "ansible -playbook myplaybook.yml -e myparam="${ANSIBLE_MY_PARAM}""
}
}
}

但在这种有限的情况下,这似乎有些矫枉过正。

最新更新