Capって連携しているgemがたくさんあるので、なかなかそこらへんが大変なんす。
Cap 3.0 本体
他に書いてくれている人たくさんいるので割愛。
ただ、元のファイルは一度消すかrenameしないとcap install
通らない。
Qiita内だとこの方のすごいストック。
Upgrade to Capistrano 3.0
http://qiita.com/katton/items/e5cca6c4f94d140ae2d6
SSHKitのSyntaxなどについてはこちらの方がすごい。
Capistrano 3への手引き - 今日のごはんは素麺です
http://takkkun.hatenablog.com/entry/2013/10/12/Capistrano_3%E3%81%B8%E3%81%AE%E6%89%8B%E5%BC%95%E3%81%8D
あと、本家もありますね。
http://www.capistranorb.com/
まあ、頑張って移行する。
特にrepository
がrepo_url
に変更になったのはすべての人に影響ありそう。
ちなみにデフォルト値はここにかいてある。
https://github.com/capistrano/capistrano/blob/master/lib/capistrano/defaults.rb
deploy.rb
にコメントアウトされている値がそうとは限らないので注意。
Integrations
Whenever
素敵なPRが既にmergeされたので動きます。
https://github.com/javan/whenever/pull/387
下記バージョン以降で。
gem "whenever", "~> 0.9.0"
WheneverのREADMEにも書いてあるんですが、whenever_command
に値をいれても動かないです。
bundler使ってる人が今まで、bundle exec whenever
って上書きしていた分に関しては勝手にされるので触るな、ってことでした。
もしどうしてもやりたい場合はREADMEにかいてあるので読んでください。
https://github.com/javan/whenever
これは、SSHKitのissueだと書いてありますです。
RVM
cap 3.x用のcapistrano/rvm
があるので、新しいgem使いましょう。
https://github.com/capistrano/rvm
gem 'capistrano-rvm'
今まで使っていたrvm-capistrano
と混ざらないように。
値の名前も少し変わっています。
rvm_type
は今まで通りですが、rvm_ruby_string
ではなく、rvm_ruby_version
になっています。
これ以外の詳細はREADMEへ。
https://github.com/capistrano/rvm
Unicorn
capistrano-unicorn
は対応していない。
有志のgistから拾ってくるか、forkから頑張って拾うか。
素直にdeploy.rb
に再起動のコマンド書いちゃってもいいと思うけど。
自分は以下のfork使ってます。
https://github.com/sepastian/capistrano-unicorn
その際、RVMとうまく噛み合わなかったので、
(capistrano-unicornがコマンドもりもり直書きしているため)
とりあえず下記な感じで逃げました。
# TODO: Dirty hack for Unicorn Integration
set :unicorn_bundle, -> {
"#{fetch(:rvm_path)}/bin/rvm #{fetch(:rvm_ruby_version)} do #{fetch(:bundle_cmd, 'bundle')}"
}
このgemに頼らずにイチから書いた方良さそうな気がムンムン。
Sidekiq
Capfileからrequireするようにすれば動くっぽいよ。
Airbrake
これも本家はだめっぽそうなので、PR支援しましょう。
https://github.com/airbrake/airbrake/pull/255
https://github.com/airbrake/airbrake/issues/247
あんまりAirbrakeのデプロイ通知は活用できてなかったので、放置しました。
最後に
Capfileにset
書くと動かないよね?
load:defaults
のside effectsっぽいんだけど、これは仕様になっていくのだろうか?
たしかに設定はdeploy.rb
に書いた方がスッキリしそうだけどね。
おしまい。