jenkins - RVM 不是函数,从 jenkinsfile 中选择 'rvm use ...' 的 ruby 将不起作用

标签 jenkins rvm jenkins-pipeline

我试图在我的 Jenkinsfile 中通过 RVM 使用一个 ruby​​ 版本,如下所示:

sh 'rvm use ruby 2.3.1'

但是,我相信上面的命令没有按照预期执行,因为我在它之后收到了这条消息
+ rvm use ruby 2.3.1
 RVM is not a function, selecting rubies with 'rvm use ...' will not work.

我阅读了其他建议添加 #!/bin/bash -xl 的答案,但是,我正在使用它来自 Jenkinsfile而不是 bash 脚本。

有没有办法解决这个问题?我只想将 ruby​​ 设置为 2.3.1,然后运行一个命令。

我也试过使用 create default但仍然打印的 ruby​​ 版本是 2.0.0
  sh '''
    #!/bin/bash -xl
    echo $PATH
    rvm install ruby-2.3.1
    rvm alias create default 2.3.1 && ruby --version
    ruby --version
  '''

最佳答案

#!/bin/bash -l作为脚本的第一行。它创建了一个登录 shell 。

您也可以在调用 rvm use 之前先获取 rvm :
source /usr/local/rvm/scripts/rvm

关于jenkins - RVM 不是函数,从 jenkinsfile 中选择 'rvm use ...' 的 ruby 将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43108600/

相关文章:

node.js - Jenkins 内的 Docker 代理 - npm "cannot find module"

Jenkins:由于位置地址中存在额外的 "%402"字符而失败

git - 执行 Jenkins Pipeline : Caused: java. io.NotSerializableException : groovy. json.internal.LazyMap 时出现异常

angular - Docker上的Jenkins开始在Docker上构建angular应用

ruby-on-rails - 将 Ruby 2.0.0-p247 更新为 Ruby-2.0.0-p353。安装 Rails 4.0.0 时出错。在 GNU/Linux 上

ruby-on-rails - 切换到 zsh 在命令行中破坏了 rails

ruby - "dyld: Library not loaded", "libruby.1.9.1.dylib"在命令行调用"mvim ."时

Jenkins Pipeline 发布 html 报告

jenkins - 如何捕获 Jenkins 中的任何管道错误?

jenkins - 如何检测 Jenkins 声明式管道中哪个并行阶段失败?