【发布时间】:2019-02-11 01:01:17
【问题描述】:
如何让 Jenkins 仅对一个 Jenkins 管道/Jenkinsfile 使用 Bash 而不是其原生 shell? “代理”会帮我这样做吗?
我为部署编写了一个 shell 脚本,但其中一些参数包含空格,这会通过丢失一些 args 来混淆我生成的结果命令。我发现如何通过将 Jenkins shell 类型全局配置为 Bash 来避免这个问题。但是,当我更改全局 shell 类型时,我的其他使用 Jenkins docker 插件语法的 Jenkins 管道在使用 docker 容器中的“sh”命令时会被破坏。我的解决方法是根据我要运行的 Jenkins 构建来对 shell 类型的全局设置进行 ping pong。它是皇家 PITA。
【问题讨论】:
-
您是否考虑过修改您的脚本?
-
是的!在与 Jenkins 苦苦挣扎之后,我需要继续前进。它适用于 Bash。让我们坚持主题。 :)
标签: bash docker jenkins jenkins-pipeline