3

私の目標は、コミットされてリポジトリにプッシュされた Git ブランチに基づいて、Django アプリケーションを 2 つの環境 (DEV または PROD) のいずれかにデプロイできるようにすることです。このリポジトリは、Django アプリケーションが実行されているのと同じサーバーでホストされています。

現在、2台virtualenv設置しています。環境ごとに 1 つ。それらは同一です。requirements.txt私のリポジトリで変更された場合にのみ変更されると思います。

gitアプリケーションがデプロイされる場所にリポジトリを直接ホストすることによって、デプロイを提供するインターネット上のチュートリアルを見てきました。これは私のアーキテクチャでは機能しません。リポジトリをホスト/管理するために RhodeCode を使用しています。post-receive (または、より適切な場合はその他) フックを使用して、適切な環境への更新をトリガーできるようにしたいと考えています。

この回答に似たものを使用すると、焦点を当てたい環境を絞り込むことができます。

source activateコマンドを外部スクリプト (つまり、フック)に入れると、スクリプトはそのコマンドで停止します。はvirtualenv適切に開始されますが、スクリプト内のそれ以降のアクション (pip install -r requirements.txtまたは./manage.py migrate) は実行されません。

私の質問は、関連するフックを実行するにはどうすればよいvirtualenvですか? requirements.txtまたは、既に実行されている場合は、新しい、South移行、およびアプリケーション コードで適切に更新しますか?

このワークフローは複雑すぎませんか? git push理論的には、適切なブランチと同じくらい単純でなければなりません。

4

0 に答える 0