2016-10-02 3 views
1

JenkinsとAppiumのRubyライブラリを使用してOSXでCI環境を設定しています。Jenkins、rbenv、bundler - Jenkinsとrbenvを使用している場合、rbenvプラグインはどのようにバンドルをプリインストールしますか?なぜ私の場合はそうではありませんか?

RSpecでテストスイートを起動するためにrakeタスクを使用しています。

同様の設定を使用して、別のマシンで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) 

など

することになっている場合バンドラの幹部がされていないとの問題があるように思えます。

私はいくつかの方法でパスに export PATH="$HOME/.rbenv-jenkins/bin:$PATH" を追加しようとしましたが、それは違いはありませんように思える - それは私がそれを実行見シェル段階だが、私は何の変更を取得していないとき。

私はrbenvプラグインでrakeとbundlerを有効にしていますが、インストールされているとは思われません。理由はわかりません。

私はJenkinsユーザーにログインしているときに、rspecrakebundle exec rakeでテストを実行できます。

何が起こっているのでしょうか?不足していることがあれば教えていただき、ありがとうございます!

編集:

+ 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あるプリインストール私の - だけレーキが正しくプリインストールされるように思える:私はgem install bundlegem install rakeシェルコマンドを追加すると

が、私は以下の取得。

rakeをインストールせずに(そして、バンドルインストール後にrbenv rehashで)ジョブを実行すると、同じエラーが発生します。

答えて

0

この場合、gemの依存関係はエラーであることが判明しました。これは、すべてのことが言われて実行されたときに悪いものです。

bundle exec rake ios(私のテストタスク)を、プラグインを介してレーキタスクではなくシェルコマンドとして実行することで、狩りのエラーメッセージを表示することができました。

そこから、私は悪いバージョンについてのエラーを得ました、そして、いくつかのgemfileの調整(そして私のGemfile.lockのヌーク)を試した後、バンドルインストールをシェル行として実行し、nokogiriのインストールが馴染みのない方法で失敗したことに気づきました。私が疑ういくつかのXcodeバージョンのジャグリングはかなり独特です)。

紛失して同様の場所でガイダンスを探している場合は、シェルラインとしてタスクを実行して、より詳細なエラーを表示してください。

関連する問題