capistrano
https://rubygems.org/gems/capistrano-pending/versions/0.2.0 Capistranoのプラグイン方式がv3.7から大きく変わって:scm変数が非推奨になり、さらにv4.0からは消されるらしく、その対応のため。といってもいただいたPRの挙動を確認しただけだけど。 github…
capistranoでrubotyをデプロイするのをよしなに助けてくれるgemを書いた。 github.com デーモン化とPIDファイルの書き出しに対応したruboty v1.3.0が必要になるので要注意。
host.rolesを叩くと、role(のSymbol)のSetが返ってくる。 task :foo do on release_roles :all do |host| host.roles #=> #<Set: {:web, :app, :db}> end end git_strategyの中でもcontextを通して同じことができる。 set :git_strategy, MyGitStrategy module MyGitStrategy def r</set:>…
capistrano-pending gemでREVISIONファイルが無いときにエラーで終わらせたくてCapistranoのコードを読んでみたら、次のようにしてた: if test "[ -f #{current_path}/REVISION ]" # ファイルが存在した場合の処理 else error "REVISION file doesn't exist"…
bundlerでbinstubしたrailsコマンドやrakeコマンドを使っていると、次のような警告がbin/rails cしたときなどに表示される: Looks like your app's ./bin/rails is a stub that was generated by Bundler. In Rails 4, your app's bin/ directory contains …
http://rubygems.org/gems/capistrano-pending Capistrano 2で使えていたdeploy:pendingというコミットの差分ログを表示するレシピが3になってから使えなくなっていたので、同じ動作をするものを作った。 Capistranoは3.2.0以上が必要。このバージョンからre…
以前Capistranoでデプロイ対象のEC2インスタンスをタグで指定するものを書いているという記事で紹介した、capistrano-ec2_taggedというgemをリリースした。 capistrano-ec2_tagged (0.1.0): http://t.co/Bn9FSwBrgb Get ip addresses of AWS EC2 instances f…
capistrano-ec2_taggedというgemを作った。まだrubygems.orgには上げていない。 これはCapistranoで指定タグのEC2インスタンスにデプロイのようなことをやるためのもので、次のようにして使う: # Gemfile gem "capistrano-ec2_tagged", require: false, gith…
Rails 4(ActiveRecord)でdelayed_jobを使いつつ、それをCapistranoでデプロイする方法のメモ。基本的に本家のWikiに従う。 キューの機能を使う まず必要なgemをインストールしてマイグレーションファイルと実行ファイルを作成する。 # Gemfile gem "delaye…
Capistranoではリリース間でファイルを共有するためにいくつかのディレクトリがshared/以下にコピーされ、そちらにシンボリックリンクをはるようになっている。たとえばpublic/assetsとかlogとか。 この仕組は任意のディレクトリに対しても使うことができる…
Capistranoでunicornを使ったアプリをデプロイしているとBundler::GemfileNotFoundという例外があがることがあるらしい*1 どうやらBUNDLE_GEMFILEがreleasesのある時点でのGemfileのパスを保持したままデプロイを重ねて、そのファイルがtruncateで削除されて…
サーバ間に差異があると意図どおりに動かない可能性があるのでおすすめできない(追記2参照) capistranoのでデプロイをするとdeploy:assets:precompileを走らせてassetsのコンパイルをしてくれるけど、毎回assetsに変更があるわけではない。なので変更がな…
capistrano_database_ymlを使うと、デプロイ時にテンプレートからdatabase.ymlを生成することができる。このときcapistrano側からパラメータを与えられるので、multistageと組み合わせると「本番サーバとステージングサーバで同じproduction環境を使いながら…
capistrano-rbenvを使うとcapistranoでrbenvを扱うことができる。3系には今のところ対応していない(capistranoの3系ってどこに出てるんだろう?)。 Vagrant/Ched-soloで環境を作っていて2点ほどメモ。 multistage環境でcapistrano-rbenvを使うときにrbenv_…
capistranoのレシピ 同じnamespace内のタスクなら、タスク名を書けばそれがそのまま呼べるtask :foo do; bar; end 別のnamespaceなら<namespace>.<task>という感じで、ドットで繋げればOK http://stackoverflow.com/questions/7021523/how-can-i-trigger-a-capistrano-task-fr</task></namespace>…