カテゴリー : Capistrano

[Capistrano] 特定の branch や commit を指定して deploy する

Capistrano では、特定のブランチやコミットを指定してデプロイすることができます。

ブランチ名を指定して deploy する

cap production deploy -S branch="hoge_branch"

リビジョン番号を指定して deploy する

cap production deploy -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993

参考情報

[Capistrano] rake task 実行用レシピ

Capistrano で rake task を実行するためのレシピをメモ。

namespace :rake do
  desc "Run a task on a remote server."
  # run like: cap staging rake:invoke task=db:seed_fu
  task :invoke do
    run("cd #{deploy_to}/current; rake #{ENV['task']} RAILS_ENV=#{rails_env}")
  end
end

例えば、rake db:version を Capistrano 経由で実行したい場合は下記のような感じ。

% cap staging rake:invoke task=db:seed_fu

namespace が衝突?してしまったため、rake から rake_task へ変更

namespace :rake_task do
  desc "Run a task on a remote server."
  # run like: cap staging rake:invoke task=db:seed_fu
  task :invoke do
    run("cd #{current_path} && RAILS_ENV=#{rails_env} bundle exec rake #{ENV['task']}")
  end
end

以上です。

【参考】ruby – How do I run a rake task from Capistrano? – Stack Overflow はてなブックマーク - ruby - How do I run a rake task from Capistrano? - Stack Overflow