如何默认为Jenkins shell执行的登录shell

Mar*_*ger 10 bash rvm jenkins rbenv

我想使用rvm(或rbenv/chruby)来从我的Jenkins作业中选择不同的ruby版本.默认情况下,Jenkins将使用/ bin/sh,它在Ubuntu上是破折号.

为了改变这个,我可以补充一下

#!/bin/bash -l
Run Code Online (Sandbox Code Playgroud)

到处都是每个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插件,但这甚至不安装在当前的发行版本上.

有任何想法吗?:)

Mic*_*c92 12

  1. 你可以通过在bash周围创建一个包装器来解决:

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

    $ which rvm-shell
    /home/jenkins/.rvm/bin/rvm-shell
    
    Run Code Online (Sandbox Code Playgroud)

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