RVM не является функцией, выбор рубинов с помощью «rvm use» не будет работать из jenkinsfile

Я пытаюсь использовать версию ruby ​​​​через RVM в моем Jenkinsfile следующим образом:

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
  '''

person Anthony    schedule 30.03.2017    source источник
comment
Вы пробовали stackoverflow.com/questions/10209242/rvm-and-jenkins -установить?   -  person idej    schedule 30.03.2017
comment
@idej это ответ, на который я ссылался в своем вопросе. Это все еще не объясняет, как это сделать из jenkinsfile.   -  person Anthony    schedule 30.03.2017
comment
Не поможет ли просто bash 'rvm use ruby 2.3.1'?   -  person Aleksei Matiushkin    schedule 30.03.2017
comment
@mudasobwa это не так. Я считаю, что это в основном вопрос Дженкинса. Я собираюсь удалить другие теги   -  person Anthony    schedule 30.03.2017
comment
ты смог решить эту?   -  person Siddharth Paneri    schedule 22.01.2020


Ответы (1)


Поместите #!/bin/bash -l в качестве первой строки вашего скрипта. Он создает оболочку входа.

Вы также можете сначала получить rvm перед вызовом rvm use:

source /usr/local/rvm/scripts/rvm

person Clintm    schedule 23.01.2018