switchtower チュートリアル議事録
ちょっと時間があきましたが、switchtowerセッションの議事録をば。
- なにはともあれ本家のチュートリアルがお薦め。
- switchtowerの動きの解説
- --apply-toではconfig/deploy.rbとlib/tasks/switchtower.rakeが生成される。
- deployなどの、特に設定がいらないタスクはswitchtower-0.9.0/lib/swtichtower/recipes/standard.rbにまとまっている。読んでみるとかなり勉強になります。
- lib/tasks/switchtower.rakeを読むと分かるが、rakeで実行されるのは system "switchtower -vvvv(args)"というタスク。漢らしすぎる。
- 実際にswitchtowerを使うにあたって。
- まず試してみる上で直さなきゃいけないのはdeploy.rbのわずか6行。
- switchtowerを深く知るにはrakeの知識が必須。
- switchtower.rakeはともかく、そこから呼ばれるdeploy.rbもなかなかいいサンプルかも。
- rakeファイルは結局Rubyスクリプト。無理にタスクにするよりもdef 〜 end でやったほうが楽なことも多いよ(thanks to かくたにさん)。
- 20分でできるswitchtower
- あとで別途まとめます(予定)。
- switchtowerを業務で使うには
- ドキュメント少な過ぎ。
- 公式にあるドキュメントはなかなか悪くない。switchtowerを使うだけなら結構よいと思う。英語だけど。
- 定型作業楽にしてくれる。細かく頻繁なリリースのお供に最適。
- rollbackでの切り戻しもちゃんとできる。
- symlinkの張り直しではなく、rollback対象をばっさりと消すのがswitchtower的漢らしさ。
- 本番環境へのdeployなのに、本番環境に.svnが残るのはどうかと思う。
- 同意が3票ほど。
- ちょっと調べてみましたが、どう見てもハードコード*1です。ありがとうございました。
- ドキュメント少な過ぎ。
command = "#{svn} co -q -r#{configuration.revision} \ #{configuration.repository} #{actor.release_path}
- まとめ
- switchtowerもrakeも便利なのでがんがん使いましょう、と。
*1:switchtower-0.9.0/lib/switchtower/scm/subversion.rb #72 改行はもろはし。