Ruby неправильно понимает, какие гемы установлены при запуске из Jenkins? - PullRequest
2 голосов
/ 27 сентября 2011

У меня есть работа Дженкинса, которая должна работать. Описание работы выглядит следующим образом:
SVN обновляет репозиторий рабочей области
Запустите следующую пакетную команду Windows "ruby -d tester.rb"

Когда я запускаю эту команду из командной строки на главном компьютере (который является физическим компьютером передо мной), сценарий запускается без проблем

Когда я запускаю отдельную работу, которая вызывает "ruby -v", он видит правильную версию ruby.
Когда я запускаю отдельную работу, которая вызывает "gem list", он видит правильную версию ruby.

Однако, когда я запускаю задание, описанное сверху, я получаю ошибки, что ни один из драгоценных камней, перечисленных как устанавливаемые "gem list", не установлен, и мой скрипт не запускается.

Может кто-нибудь дать предложение?

для получения дополнительной информации здесь приведен код из прогона с небольшим количеством комбинации данных:


[workspace] $ cmd /c call C:\Windows\TEMP\hudson3791189246243258127.bat

C:\Program Files (x86)\Jenkins\jobs\job1\workspace>ruby -r rubygems -e "p Gem.path" 
["C:/Windows/system32/config/systemprofile/.gem/ruby/1.8", "C:/Ruby187/lib/ruby/gems/1.8"]

C:\Program Files (x86)\Jenkins\jobs\job1\workspace>cd .qa_automation\trunk 

C:\Program Files (x86)\Jenkins\jobs\job1\workspace\.qa_automation\trunk>set GEM_HOME=c:\Ruby187\lib\ruby\gems\1.8 

C:\Program Files (x86)\Jenkins\jobs\job1\workspace\.qa_automation\trunk>ruby -d _Tester.rb config\portalconfigPROD.txt compare_IWT_Main_TSS 
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- random_data
Exception `NoMethodError' at C:/Ruby187/lib/ruby/1.8/rational.rb:78 - undefined method `gcd' for Rational(1, 2):Rational
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- uuidtools
Exception `NameError' at C:/Ruby187/lib/ruby/gems/1.8/gems/uuidtools-2.1.2/lib/uuidtools/version.rb:25 - uninitialized constant UUID
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- builder
./lib/Portal/Session.rb:379: warning: statement not reached
./lib/Portal/Session.rb:434: warning: statement not reached
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- selenium-webdriver
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- yajl/json_gem
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:60 - no such file to load -- yajl/json_gem
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- json/ext/parser
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:60 - no such file to load -- json/ext/parser
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:60 - no such file to load -- json/ext/parser
Using Pure library for JSON.
_Tester.rb:78: warning: already initialized constant ARGV
C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.7.0/lib/selenium/webdriver/remote/capabilities.rb:171: warning: method redefined; discarding old proxy=
C:/Ruby187/lib/ruby/gems/1.8/gems/ffi-1.0.9-x86-mingw32/lib/ffi/struct.rb:225: warning: discarding old align
Exception `LoadError' at C:/Ruby187/lib/ruby/gems/1.8/gems/ffi-1.0.9-x86-mingw32/lib/ffi/library.rb:133 - LoadError
Exception `LoadError' at C:/Ruby187/lib/ruby/gems/1.8/gems/ffi-1.0.9-x86-mingw32/lib/ffi/library.rb:133 - LoadError

1 Ответ

0 голосов
/ 30 сентября 2011

Для быстрого взлома попробуйте запустить команду "ruby -d tester.rb", указав путь к файлу ruby, на котором установлены ваши гемы.

Так, например, "/users/llaskin/lib/bin/ruby -d tester.rb".

Также, если выиспользовали RVM для установки вашего ruby ​​и гемов и установили несколько версий, rvm все испортило.

...