カピストラーノを使用して RoR アプリケーションをデプロイしています。コードベースは git リポジトリにあり、分岐は開発で広く使用されています。Capistrano はdeploy.rb
その設定に file を使用します。そのうちの 1 つはデプロイ元のブランチです。
私の問題はこれです: masterから新しいブランチAを作成するとしましょう。deploy ファイルはmasterブランチを参照します。それを編集して、Aをテスト環境にデプロイできるようにします。機能の作業を終了し、ブランチAをmasterにマージします。Aからのファイルはより新しいため、マージされ、マスターブランチ内でAが参照されます。もう一度編集する時間。deploy.rb
deploy.rb
これは、一見不必要な手動編集の多くです。パラメーターは常に現在のブランチ名と一致する必要があります。その上、毎回設定を編集するのを忘れがちです。
このプロセスを自動化する最良の方法は何でしょうか?
編集:誰かがすでに私が必要としていたことを正確に行っていることがわかりました:
今朝、ステージング サーバーに git リポジトリのブランチをデプロイする機会がありましたが、その方法がまったくわかりませんでした。capistrano のソース コードをざっと検索したところ
:branch "branch_name"
、デプロイ スクリプトで set を使用できることがわかりました。私はそれを試してみましたが、うまくいきました。次に、すべてのブランチで同様の変更を行う必要があると考えました。もちろん、私は怠け者なので、もっと良い方法はないかと考えました。git に慣れていない場合、git branch コマンドの出力は、ローカル マシンで現在チェックアウトされているブランチを示すアスタリスクが付いたブランチのリストです。例えば:
> git branch * drupal_authentication fragment_caching master
したがって、出力を解析して、最新としてマークされたブランチを検索するとどうなるかを考えました。
set :branch, $1 if `git branch` =~ /\* (\S+)\s/m
これで、単一の共有デプロイ スクリプトから、ローカル マシンに最新のブランチをデプロイできるようになりました。