Возьмем следующую ситуацию:
- Использование Дженкинса
- Установлен rvm с разными версиями ruby(2+)
- Установлен плагин rvm
Параметр включен. Запустите сборку в среде, управляемой RVM, в Build Environment с версией ruby ruby-2.3.0@global
.
Теперь о проблеме. После каждого запуска задания jenkins я вижу следующий вывод:
Capturing environment variables produced by 'rvm use ruby-2.3.0@global'
$ bash -c export
[workspace] $ bash -c " source /usr/local/rvm/scripts/rvm && rvm use --install --create ruby-2.3.0@global && export > rvm.env"
Using /usr/local/rvm/gems/ruby-2.3.0 with gemset global
...
И вроде все должно работать нормально. Но на самом деле jenkins использует ruby-2.2.0
, потому что ниже в журнале я нашел это:
+++ __path_to_ruby=/usr/local/rvm/rubies/ruby-2.2.0/bin/ruby
+++ [[ -z /usr/local/rvm/rubies/ruby-2.2.0/bin/ruby ]]
+++ [[ /usr/local/rvm/rubies/ruby-2.2.0/bin/ruby != \/\u\s\r\/\l\o\c\a\l\/\r\v\m* ]]
+++ [[ /usr/local/rvm/rubies/ruby-2.2.0/bin/ruby == \/\u\s\r\/\l\o\c\a\l\/\r\v\m\/\b\i\n\/\r\u\b\y ]]
+++ [[ /usr/local/rvm/rubies/ruby-2.2.0/bin/ruby == \/\u\s\r\/\l\o\c\a\l\/\r\v\m* ]]
+++ [[ -z /usr/local/rvm/gems/ruby-2.2.0 ]]
+++ [[ -z /usr/local/rvm/gems/ruby-2.2.0:/usr/local/rvm/gems/ruby-2.2.0@global ]]
...
И следующая проблема, которая вытекает отсюда:
Gem::InstallError: activesupport requires Ruby version >= 2.2.2.
Также, если я наберу команду ruby -v
в области «Выполнить оболочку», то в журнале я увижу это
+ ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]
Я также попытался запустить команду rvm use ruby-2.3.0
непосредственно в оболочке Execute.
Также я добавил это в /var/lib/jenkis/.bashrc
:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
И попытался изменить $HOME/.rvm
на /usr/local/rvm
Но каждый раз результат один и тот же. Дженкинс не использует ruby-2.3.0
Помогите, пожалуйста, разобраться, что я пропустил?