Travis CIをセットアップしようとしていますが、rubyが期待どおりに機能していません。
Travis CIがバンドルインストールを適切に実行しているようですが、すぐにrubyがrubygemを見つけることができません。Travisログは次のとおりです。
$ ruby --version
ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-darwin13.1.0]
$ rvm --version
rvm 1.25.33 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
$ bundle --version
Bundler version 1.7.4
[... snip ...]
$ bundle install --jobs=3 --retry=3 --deployment
Fetching gem metadata from https://rubygems.org/.........
Fetching additional metadata from https://rubygems.org/..
Installing colorize 0.7.2
Installing json 1.8.1
Using bundler 1.7.4
Installing dnssd 2.0
Your bundle is complete!
It was installed into ./vendor/bundle
$ cat Gemfile.lock
GEM
remote: https://rubygems.org/
specs:
colorize (0.7.2)
dnssd (2.0)
json (1.8.1)
PLATFORMS
ruby
DEPENDENCIES
colorize
dnssd
json
The command "cat Gemfile.lock" exited with 0.
$ ruby -e "require 'colorize'"
/Users/travis/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- colorize (LoadError)
from /Users/travis/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'
The command "ruby -e "require 'colorize'"" exited with 1.
Done. Your build exited with 1.
今のところ、.travis.yml
ファイルは単純です。
language: objective-c
script:
- cat Gemfile.lock
- bundle env
- ruby -e "require 'colorize'"
私は単純な間違い(おそらく純粋なルビーの間違い)をしていると思いますが、それを見ることができません。私はここで何が間違っているのですか?
Bundlerは、魔法のように利用できるものを作成しません。require 'bundler/setup'
Bundlerにロードパスを設定させるには、スクリプトで行う必要があります。
Bundlerはあなたのgemをあなたが望むどんなパスにもインストールしますが、それらのgemは必ずしもあなたのRubyロードパスにあるrequire
とは限らないので、必ずしもそれらを見つけるとは限りません。Bundlerにrequire 'bundler/setup'
、他のgemを使用する前に、インストールされたバンドルのgemを指すようにロードパスを変更させることができます。これには、バンドラーがロードパスですでに使用可能である必要がありますgem install bundler
。これは通常、を介して実行されます。Travisにはプリインストールされているので、特別なことをする必要はありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加