0

現在、継続的インテグレーションのために Integrity を使用しています。CI サーバーは「整合性」gemset で実行されていますが、アプリケーション (およびそれは Rspec テスト スイート) が起動し、テストは「ポータル」などと呼ばれる別の gemset で実行されるように設計されています。

そこで、次のビルド スクリプトを使用します。

rvm use 1.9.2-p290@portal
bundle exec rake spec

私が得る出力は

RVM is not a function, blah-blah-blah

基本的に、ログインしていないシェルではrvmが供給されていないと言われています。大したことではありません。これを .bashrc に追加しましょう:

if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
  # First try to load from a user install
  source "$HOME/.rvm/scripts/rvm"

これで、私が起動したどの端末でも、泣き叫ぶことなく rvm use コマンドを呼び出すことができるようになりました。しかし、整合性はそれを気にせず、まだ rvm は関数ではないと言っています。

Integrity がシステムコマンドを呼び出す方法を知っていれば地獄ですが、ここではアイデアがありません。

ご協力いただきありがとうございます!

4

1 に答える 1

1

コマンドが 1 つだけの場合は、次を実行します。

rvm 1.9.2-p290@portal do bundle exec rake spec

さらにコマンドを実行するには、次のようにします。

source $( rvm 1.9.2-p290@portal do rvm env --path )
bundle install
bundle exec rake spec
于 2013-01-23T20:01:15.283 に答える