2016-10-02 57 views
1

我使用Jenkins和Appium的Ruby庫在OSX上設置CI環境。Jenkins,rbenv,bundler - 當使用Jenkins和rbenv時,rbenv插件如何預安裝捆綁器,爲什麼它不是我的情況?

我正在使用rake任務在RSpec中啓動我的測試套件。

使用類似的配置,我能夠在另一臺機器上使用Jenkins運行測試。我現在使用rbenv(和rbenv插件)並且有一些問題。

這裏就是我得到的,當我嘗試運行作業:

$ bash -c "[ -d \$HOME/.rbenv-jenkins ]" 
$ bash -c "[ -d \$HOME/.rbenv-jenkins/plugins/ruby-build ]" 
$ bash -c "cd /Users/Shared/Jenkins/Home/workspace/Tests && env RBENV_ROOT\=\$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= \$HOME/.rbenv-jenkins/bin/rbenv local 2>/dev/null || true" 
Use local Ruby version 2.2.5. 
$ bash -c "mkdir \$HOME/.rbenv-jenkins/.lock" 
$ bash -c "env RBENV_ROOT\=\$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= \$HOME/.rbenv-jenkins/bin/rbenv versions --bare" 
$ bash -c "env RBENV_ROOT\=\$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= \$HOME/.rbenv-jenkins/bin/rbenv rehash" 
$ bash -c "env RBENV_ROOT\=\$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= \$HOME/.rbenv-jenkins/bin/rbenv exec gem list" 
$ bash -c "env RBENV_ROOT\=\$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= \$HOME/.rbenv-jenkins/bin/rbenv rehash" 
$ bash -c "rm -rf \$HOME/.rbenv-jenkins/.lock" 
[Tests] $ bundle exec rake ios 
FATAL: rake execution failed 
java.io.IOException: Cannot run program "bundle" (in directory "/Users/Shared/Jenkins/Home/workspace/Tests"): error=2, No such file or directory 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 
at hudson.Proc$LocalProc.<init>(Proc.java:240) 
at hudson.Proc$LocalProc.<init>(Proc.java:212) 

好像有與沒有被捆綁的exec它應該是一個問題。

我已經嘗試添加 export PATH="$HOME/.rbenv-jenkins/bin:$PATH" 在幾個方面的路徑,但似乎不有所作爲 - 當它是一個配件臺階我看到它運行,但我沒有得到任何改變。

我有預裝耙和捆綁與我rbenv插件啓用的,但我不認爲他們得到安裝 - 我不知道爲什麼。

當我登錄到Jenkins用戶時,我可以通過rspecrakebundle exec rake運行測試。

任何想法什麼沒有做它應該是什麼?如果有任何遺漏的細節,請告知我,謝謝!

編輯:

當我添加gem install bundlegem install rake shell命令,我得到如下:

+ gem install bundler 
Successfully installed bundler-1.13.2 
Parsing documentation for bundler-1.13.2 
Done installing documentation for bundler after 4 seconds 
1 gem installed 
+ gem install rake 
ERROR: Error installing rake: 
    "rake" from rake conflicts with /Users/Shared/Jenkins/.rbenv-jenkins/versions/2.2.5/bin/rake 
Build step 'Execute shell' marked build as failure 
Finished: FAILURE 

我的預安裝寶石rake,bundler - 但似乎只耙得到正確預裝。

運行,而無需安裝耙的工作(並與所述捆綁安裝以下的rbenv翻版),我得到了同樣的錯誤。

回答

0

在這種情況下,它證明是一個錯誤與寶石依賴 - 一個壞的nokogiri安裝時,所有的說法和完成。

我能夠通過運行bundle exec rake ios(我的測試任務)作爲shell命令而不是通過插件作爲rake任務來顯示錯誤消息。我嘗試了一些gemfile的調整(並且破壞了我的Gemfile.lock),然後運行了bundle install作爲shell行,並注意到nokogiri的安裝以熟悉的方式失敗(由於一些Xcode版本雜耍,我懷疑是相當特殊的)。

所以,如果你迷路了,在相似的專找指導下,嘗試運行任務作爲外殼線條讓你獲得更詳細的錯誤。