Rails プロジェクト ファイル構造内で使用されるgem elastic-beanstalkを作成しました。また、Rails dir とファイルが使用できないスタンドアロン CI 環境でも使用できます (解凍などは必要ありません)。つまり、Bamboo ビルド プロセスの実行eb:package
によって 1 つのプライマリ アーティファクトが生成app.zip
され、後でデプロイ プランが、おそらく別のエージェントで引き継がれて実行される可能性がありeb:deploy
ます。
目標
これは、Rails プロジェクト構造内ではすべて正常に実行されるため、ここでの私の目標は、これをスタンドアロン CI 環境でも実行することです。
与えられた
app.zip
, eb.yml
, binstubsだけが作成された空のディレクトリ (CI 環境) で、gem が利用可能です
いつ
走るelastic-beanstalk eb:deploy
それで
rake eb:deploy
これは、この gem の依存関係と lib ファイルを使用するのと同じように実行する必要があります。
更新 - ビン スタブ
ビンスタブが私が探しているものかもしれません。別のSO投稿を調べて、私は試しました(これまでのところ役に立ちませんでした)bin/elastic-beanstalk
:
gem_dir = File.expand_path('..',File.dirname(__FILE__))
$LOAD_PATH.unshift gem_dir# Look in gem directory for resources first.
lib = File.expand_path('lib', gem_dir)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'elastic/beanstalk'
require 'rake'
require 'pp'
pwd=Dir.pwd
Dir.chdir("#{gem_dir}/bin") # We'll load rakefile from the gem's bin dir.
Rake.application.init
Rake.application.load_rakefile
Dir.chdir(pwd) # Revert to original pwd for any path args passed to task.
Rake.application.invoke_task(ARGV[0])
したがって、これは実行されますが、私が始めたのと同じ依存関係の問題でまだ失敗していundefined method 'safe_load_file' for Psych:Module (NoMethodError)
ます。私はbinstubが行く方法だと思いますが: