11

我想使用 rvm(或 rbenv/chruby)从我的 Jenkins 工作中选择不同的 ruby​​ 版本。默认情况下,Jenkins 将使用 /bin/sh,在 Ubuntu 上是 dash。

为了改变这一点,我可以添加

#!/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 插件,但它甚至没有安装在当前版本上。

有任何想法吗?:)

4

1 回答 1

13
  1. 您可以通过围绕 bash 创建一个包装器来解决:

    #!/bin/sh
    # for ex.: /usr/local/bin/login-bash
    exec /bin/bash -l "$@"
    
  2. 如果您想使用默认的 ruby​​,只需使用 rvm 附带的 rvm-shell。以 jenkins 用户身份登录并输入:

    $ which rvm-shell
    /home/jenkins/.rvm/bin/rvm-shell
    

获取 rvm-shell 的路径。将此路径用于“Shell 可执行文件”选项。

于 2013-06-15T17:24:09.570 回答