カピストラーノの展開のログを保持する
-
22-07-2019 - |
質問
capistranoを介して展開が行われるたびに(ローカルまたはリモートサーバーに保存された)ログを保持する方法はありますか?過去の任意の時点で実行されていたリビジョンの記録を保持しておくと非常に便利です。
リリースプロセスでは、リリースディレクトリにある最後の10展開の展開済みファイルが残ることはわかっていますが、より多くの履歴を保持し、フラットファイルの形式でアクセスできるようにすると便利です。
解決
capistranoは、ファイルにダンプできる latest_revision
と呼ばれる便利な変数をいくつか設定します。
task :mark_revision do
log = "#{deploy_to}/revisions.log"
run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
"echo #{latest_revision} >> #{log};"
end
他のヒント
機能は組み込まれていないため、他の答えは完全に機能します。何らかの方法でデフォルトの実行チェーンにアタッチする必要があると言うかもしれませんが、次のようなものをお勧めします
after :deploy, :mark_revision
より良いまだ私見のようになります:
after :deploy do
log = "#{deploy_to}/revisions.log"
run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
"echo #{latest_revision} >> #{log};"
end
私はそれをCapistranoのバグトラッカーに関する議論のチケットとしてオープンしました。より良いログを保持するためにコアに何かを実装するかもしれません。それは私たちが厳しく見落としていた確かに素晴らしい質問です!
Peritor Labsの「Webistrano」は、データベース駆動型のWebフロントエンドを維持することにより、似たようなことを行います。多くの場合、人々はCIサーバーでWebistranoを使用します。セルフホスティングの場合はリポジトリホストを使用します。 Tracの詳細: http://labs.peritor.com/webistrano
バグは次の場所にあります: https:// capistrano。 lighthouseapp.com/projects/8716-capistrano/tickets/98-log-deployments