Jenkins 多分支插件和 RVM

jhu*_*mel 1 ruby rvm jenkins

我正在尝试将 RVM 与 jenkins 多分支插件一起使用。我一直遇到找不到 RVM 的问题。我认为这可能是因为詹金斯用户没有真正的外壳。

我按照sudo su -s /bin/bash jenkinsRVM 安装说明安装了 RVM。

我的詹金斯文件使用:

sh 'source ~/.bashrc'
sh 'rvm use 2.2.1@my-project'
Run Code Online (Sandbox Code Playgroud)

bashrc 文件如下所示:

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Run Code Online (Sandbox Code Playgroud)

当我提交更改并运行构建时,出现以下错误:

/var/lib/jenkins/workspace/Chalk Web/develop@tmp/durable-27a33a52/script.sh: line 2: rvm: command not found
Run Code Online (Sandbox Code Playgroud)

如果我 ssh 到机器,并运行命令,sudo su -s /bin/bash jenkins我可以正常运行 RVM。但是,我假设 jenkins 在运行构建时没有登录 shell。如何让 Jenkins 看到 RVM?

提前致谢!

jhu*_*mel 5

有一种方法可以确保所有 shell 命令都使用登录 shell 执行,这解决了我的问题:

sh '''#!/bin/bash -l
rvm use 2.2.1@my-project
bundle install
etc...
'''
Run Code Online (Sandbox Code Playgroud)