我想使用rvm(或rbenv / chruby)来从我的Jenkins作业中选择不同的ruby版本。 默认情况下,Jenkins将使用/ bin / sh,它在Ubuntu上是破折号。
要进行更改,我可以添加
#!/bin/bash -l
到处都是每个shell执行函数的顶部。看到这很烦人的工作,我希望能够将其设置在中心位置。
使用" Shell可执行文件"配置设置,我可以让它运行bash,添加' -l'等参数。但是会失败
" / bin / bash -l" -xe /tmp/hudson5660076222778817826.sh致命: 命令执行失败java.io.IOException:无法运行程序 " / bin / bash -l" (在目录中 " / home / jenkins / jobs / workspace / rvm-test"):error = 2,没有这样的文件或 目录
我尝试使用jenkins的rvm插件,但这甚至不会安装在当前版本上。
有什么想法吗? :)
答案 0 :(得分:12)
你可以通过创建一个围绕bash的包装器来解决这个问题:
#!/bin/sh
# for ex.: /usr/local/bin/login-bash
exec /bin/bash -l "$@"
如果你想使用默认的ruby,只需使用rvm附带的rvm-shell。 以jenkins用户身份登录并输入:
$ which rvm-shell
/home/jenkins/.rvm/bin/rvm-shell
获取rvm-shell的路径。 将此路径用于“Shell可执行文件”选项。